【发布时间】:2017-11-25 04:37:20
【问题描述】:
我需要匹配正则表达式以匹配同一字符串中的多次出现。 模式是字母,然后是零个或多个数字,字母,冒号,然后是正斜杠,然后是一个或多个数字,字母,然后是反斜杠,然后是一个或多个数字,字母
例如
w:/a\bc::/12\xyz 应该给我的出现次数为 8。
我尝试了以下代码
Regex a11 = new Regex(@"([a-z]+[a-z1-9:]+/[a-z1-9]+\\[a-z1-9]+)+");
Regex a1 = new Regex(@"([a-z]+/[a-z1-9]+\\[a-z1-9]+)+");
var a = a11.Matches(@"w:/a\bc::/12\\xyz");
但即使多次出现,它也只匹配一次。同样在模式中,第二个字符是可选的,所以我声明了两个 regex 。有没有办法在一个正则表达式中做所有事情。非常感谢任何帮助
“a”只有一个匹配项。
【问题讨论】:
-
显示使用 Regex 变量的其余代码。
-
您没有向我们提供足够的信息来帮助您。请编辑您的帖子,为我们提供更多代码,以便能够帮助您解决这个问题:) 您可能需要查看stackoverflow.com/help/how-to-ask
-
更新了我的代码
-
请解释为什么
w:/a\bc::/12\xyz中出现了八次。请列出它们。 -
第一个 w:/a\b 第二个 w:/a\bc 第三个 bc::/12\x 第四个 bc::/12\xy 第五个 bc::/12\xyz 第六个 c:: /12\x 第七 c::/12\xy 八 c::/12\xyz 所以八次出现..