的我现在有这个(C#)字符或结束时终止:正则表达式就行
http:\/\/([^""']*[^""']*).*?((?=<)|(?=$))
正如你可以看到我想要使用先行终止线的<
或结束的正则表达式。 以上是不工作:(如果我删除|(?=$)
然后它只会工作,如果<
在字符串中。我怎么能得到正则表达式终止当<
或$
发生?(注意:我不想包括在<
在我的结果)
任何指针将不胜感激。
的我现在有这个(C#)字符或结束时终止:正则表达式就行
http:\/\/([^""']*[^""']*).*?((?=<)|(?=$))
正如你可以看到我想要使用先行终止线的<
或结束的正则表达式。 以上是不工作:(如果我删除|(?=$)
然后它只会工作,如果<
在字符串中。我怎么能得到正则表达式终止当<
或$
发生?(注意:我不想包括在<
在我的结果)
任何指针将不胜感激。
您需要<
符号添加到字符类也或以其他方式捕获组贪婪地捕捉<
性格也。
http:\/\/([^"'<]*[^"'<]*).*?(?=<|$)
这[^"'<]*[^"'<]*
如果原始字符串具有多行,那么请不要忘记,包括\n
字符类里面会被写为[^"'<]*
,
@"http:\/\/([^""'<]*).*?(?=<|$)"
。最好包含多行修饰符。
@"(?m)http:\/\/([^""'<\n]*).*?(?=<|$)"
我怎样才能获得正则表达式来终止当任<或$
您可以使用此lookah与交替EAD:
(?=<|$)
我用'http:\/\ /([^“''] * [^”''] *)。*?(?= <| $)'现在它不会终止于'<'。 – Drakkainen 2014-11-04 14:10:14
你能告诉我你的输入字符串 – anubhava 2014-11-04 14:10:32
'http://ds.serving-sys.com/BurstingCachedScripts//ReportPage_2_8_2_0.html?ebReportURL=http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn = brd&Page
你能描述一下你的目标吗?您是否正在寻找位于行尾或紧跟着“<”字符的网址? – Gus 2014-11-04 14:09:57
您是使用SingleLine还是Multiline作为选项? – OmegaMan 2014-11-04 14:19:29
@Gus要找到任何以http://开头的网址,但有些网址包含html元素(不要问我为什么,我不知道),我想确保在'<'之前退出,打开一个新的标签,网址将仍然有效。 @OmegaMan Multiline and IgnoreCase – Drakkainen 2014-11-04 14:22:56