Regex 从C中的正则表达式中排除字符串#
我有下一个重新使用c#regex类的例子:Regex 从C中的正则表达式中排除字符串#,regex,c#-3.0,Regex,C# 3.0,我有下一个重新使用c#regex类的例子: [^\r\n]+[^,"condicionesDePago"] 在下一个文本中搜索: “CREDITO 30 DIAS”、“CondicineDepago” 我想得到左边的部分,在这种情况下:“CREDITO 30 DIAS”,但我只得到:“CREDITO 30 我缺少什么?看起来您对字符类的用途有误解。它不是对单词进行操作,而是对单个字符进行操作。模式的这一部分,[^,“condicinedepago”]表示应匹配字符,前提是该字符不是该单词中的逗
[^\r\n]+[^,"condicionesDePago"]
在下一个文本中搜索:
“CREDITO 30 DIAS”、“CondicineDepago”
我想得到左边的部分,在这种情况下:“CREDITO 30 DIAS”,但我只得到:“CREDITO 30
我缺少什么?看起来您对字符类的用途有误解。它不是对单词进行操作,而是对单个字符进行操作。模式的这一部分,
[^,“condicinedepago”]
表示应匹配字符,前提是该字符不是该单词中的逗号、双引号或指定字母表
您可能打算使用前瞻:
@"[^\r\n]+(?=,""condicionesDePago"")"
或者,可以按如下方式编写,只要RegexOptions,它就不会匹配\n
。未指定单线(但它可以匹配\r
):
如果您总是希望文本采用上述格式,那么您可能希望在匹配中明确显示:
"(\w+ [0-9]+ \w+)"(?=,"condicionesDePago")
这应匹配30天的信用(即模式字母数字字母-\w+[0-9]*\w+,后跟CondicineDepago-(?=,“CondicineDepago”)——称为正向前瞻
我经常测试我的正则表达式,但我敢打赌其他人也有自己的爱好。请看
"(\w+ [0-9]+ \w+)"(?=,"condicionesDePago")