【发布时间】:2019-03-26 22:26:16
【问题描述】:
我想做的就是这么简单,但同时又不是。
我在 C# 中有一个 RegEx 的功能来查找引号内的所有单词, 但如果引号前存在特定单词,则忽略整个单词并继续下一行。 同时仍在引号内寻找特定类型的符号并忽略。
例子-
My RegEx = @"(?<!Foo\()\""[^{}\r\n]*\""";
Text -
dontfindme1 = "Hello{}"
dontfindme2 = Foo("ABC")
findme1 = "Just a simple text to find"
findme2 = SuperFoo("WORKS")
输出示例 -
"ABC"
"Just a simple text to find"
"WORKS"
现在我的问题是我不想在引号之前找到名称“Foo(” 而且我不想找到“{”或“}”或“(”或“)”或新行 我只需要找不到“ABC”并跳到下一行。
【问题讨论】:
-
机会
.到(。现在点匹配任何字符。试试(?<!Foo\()\"[^{}\r\n]*\" -
感谢您的回答,我确实尝试过这个,VS2017 告诉我我有一个“无法识别的转义序列”...
-
尝试在
@前面加上string pattern = @"(?<!Foo\()\""[^{}\r\n]*\"""; -
现在它可以正常工作,但仍然可以找到前面有 'Foo(' 的引号。
-
你能举个例子吗?是所有单词都在自己的行上还是有多个单词?