Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 从C中的正则表达式中排除字符串#_Regex_C# 3.0 - Fatal编程技术网

Regex 从C中的正则表达式中排除字符串#

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”]表示应匹配字符,前提是该字符不是该单词中的逗

我有下一个重新使用c#regex类的例子:

[^\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")