为什么我的正则表达式在VB.net中不匹配

时间:2016-02-27 04:25:32

标签: regex vb.net

我不确定为什么这个正则表达式不匹配。也许你可以发现错误。

Dim rx2 As New Regex(">+ Client (.+) <+\n([^>]*)", RegexOptions.IgnoreCase)
If rx2.IsMatch(fiContents) Then
    Debug.Print("Matched")
End If

fiContents:

============ Computer 200xx; User Comp\nnnn; Oct, 07 2015 10:33 AM
Print list: 9462
>>>>> Client 9462 <<<<<
Had a program exception; please check the error log

我想匹配&gt;&gt;&gt;&gt;&gt;客户9462&lt;&lt;&lt;&lt;&lt;捕获数字以及之后的所有内容到另一个客户端号码。所以我的第一次捕获是“9462”,第二次是“有一个程序异常;请检查错误日志”。

使用JavaScript设置在Regex101.com中完美运行。 VB.net与它不匹配有什么不同?

1 个答案:

答案 0 :(得分:0)

Noob指出/n可能是个问题。调查它我意识到该字符串包括CR和LF(当debug.Print&gt;粘贴到Regex101.com时它删除了CR)。因为正则表达式只是寻找LF它没有匹配。所以我使用>+ Client (.+) <+\r?\n?([^>]作为正则表达式来修复它。这非常有效。