【发布时间】:2016-02-09 14:19:54
【问题描述】:
我正在尝试匹配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-9 a-z]*"""。请参阅正则表达式的demo。我认为这只是一个错字。我建议结束这个问题。 -
我刚刚注意到 @ 在字符串中。为什么会在那里?如果它在外面,你需要双引号(正如@WiktorStribiżew 指出的那样)。里面没有任何意义
-
接受了下面的答案 - 是的,这是一个错字。
-
@Morvael 看看我的回答你必须做出更多改变
-
@goodeinstein 是的,我知道 - 这只是示例代码,实际实现看起来与问题中的代码不太一样。只是我把@放错了地方,然后给它开了一个盲点。