我试图在引号(")之间匹配0个或更多字母,数字和空格字符串,这些集合可以用空格分隔或不用,并且字符串将以确定如何处理匹配集的关键词。
最简单的例子如下:
\\ inString = test "1" "a""3";
Regex regEx = new Regex("@(\"[0-9 a-z]*\")", RegexOptions.IgnoreCase);
Match match = regEx.Match(inStr);
匹配不成功,更不用说包含3个预期结果了
然而,通过http://regexhero.net匹配是成功的 - 我使用regexhero作为其SilverLight,所以使用.NET Regex引擎...
Regexhero设置:
正则表达式
(\"[0-9 a-z]*\")
目标字符串
test "1" "b""3"
结果
1: "1"
1: "b"
1: "3"
有人能解释我的实施有什么问题吗?
答案 0 :(得分:3)
我希望你的正则表达式是:
pd.merge
或(完全相同)
Regex regEx = new Regex("(\"[0-9 a-z]*\")", RegexOptions.IgnoreCase);
看起来这个问题对你来说可能是一个富有成效的读物:
What's the use/meaning of the @ character in variable names in C#?
答案 1 :(得分:0)
您必须更改正则表达式:
"@(\"[0-9 a-z]*\")"
到
@"(""[0-9 a-z]*"")"
您还需要更改
Match match = regEx.Match(inStr);
到
MatchCollection match = regEx.Matches(intstr);
因为Matches
在输入字符串中搜索所有正则表达式并返回所有匹配项,但Match
会在指定的输入字符串中搜索常规的第一次出现表达
如果你想要这样的结果:
1: "1"
1: "b"
1: "3"
您需要更改为Matches