我接下来要使用c#regex类:
[^\r\n]+[^,"condicionesDePago"]
在下一篇文章中搜索:
“CREDITO 30 DIAS”,“condicionesDePago”
我想得到左边的部分,在这种情况下:“CREDITO 30 DIAS”但我只得到:“CREDITO 30
我失踪了什么?
答案 0 :(得分:2)
看起来你对字符类的用途有误解。它不是对单词进行操作,而是对单个字符进行操作。模式的这一部分[^,"condicionesDePago"]
表示字符应该匹配,前提是该字符不逗号,双引号或指定的字母。
您可能打算使用预测:
@"[^\r\n]+(?=,""condicionesDePago"")"
或者,只要未指定\n
(但它可以匹配RegexOptions.Singleline
),这可以写成如下,并且与\r
不匹配:
@".+?(?=,""condicionesDePago"")";
答案 1 :(得分:0)
如果您始终希望文字为上述格式,那么您可能希望在匹配中明确:
"(\w+ [0-9]+ \w+)"(?=,"condicionesDePago")
这应该与Credit 30 Days匹配(即模式字母数字字母 - \ w + [0-9] * \ w +),然后是condicionesDePago - (?=,“condicionesDePago”) - 称为正向前瞻。
我总是使用http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx来测试我的正则表达式,但我敢打赌其他人也有他们的喜欢。