Dim pattern As String = "^[ \t]*(\d+)[ \t]*(#[^#]*#)?[ \t]*(\w+)[ \t]?(.*)$"
Dim sentence As String = "9 #Left# Itema Desc"
For Each match As Match In Regex.Matches(sentence, pattern)
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next
のみを返します:
位置 0 に '9 #Left# Item Desc' が見つかりました
Expresso を使用して上記の vb パターンをテストすると、次のように返されます。
1:9
2: #左#
3: イテマ
4: 説明
さらに、この PHP 正規表現は次の 4 つの項目も返します。
preg_match_all('/^[ \t]*(\d+)[ \t]*(#[^#]*#)?[ \t]*(\w+)[ \t]?(.*)$/m', $in, $matches, PREG_SET_ORDER);
私は何を間違っていますか??
前もって感謝します!
アークくんのおかげで、実際に私の問題はグループでした-これが機能するコードです:
Dim pattern As String = "^[ \t]*(\d+)[ \t]*(#[^#]*#)?[ \t]*(\w+)[ \t]?(.*)$"
Dim sentence As String = "9 #Left# Itema Desc"
Dim match As Match = Regex.Match(sentence, pattern)
If match.Success Then
Console.WriteLine("Matched text: {0}", match.Value)
For ctr As Integer = 1 To match.Groups.Count - 1
Console.WriteLine(" Group {0}: {1}", ctr, match.Groups(ctr).Value)
Next
End If