【发布时间】:2013-10-29 14:24:28
【问题描述】:
在 .NET 中处理 RegEx 时,我有两个选择:
-
检查字符串是否匹配:
<a ([^>]*?)href=\"http://the.site.com/photo/[0-9]*\"> -
捕捉图案的一部分:
<a ([^>]*?)href=\"http://the.site.com/photo/(?<photoname>.*?)\">
但是如果我想检查模式匹配并捕获与单个 RegEx 匹配的部分怎么办?
【问题讨论】:
-
如果不匹配,它将如何捕获它...? lookaheads/lookbehinds 用于捕获匹配的一部分
-
@Jonesy:
(?<photoname>.*?)将捕获任何字符序列,但我只需要[0-9]*。 -
@Paul -- 你为什么将
[0-9]*替换为.*? -
@BeemerGuy.net:因为我不懂正则表达式,所以我在这里问。
-
@Paul -- 好吧,我以为你是故意的。您可以将
[0-9]*模式保留在捕获字符串中,例如(?<photoname>[0-9]*?),所以就像回答者告诉您的那样,您可以捕获并匹配相同的模式字符串......如果您只是匹配,则分组(括号部分)无关紧要。