我有一个HTML代码:
<a href="localhost/1153,Test"> <img src="test.jpg">
(...)
<a href="localhost/1191,Test8"> <img src="test2.jpg">
(...)
<a href="localhost/9838,Test"> <img src="13.gif">
(...)
想要在gif之前匹配一个值,在这个例子中是9838.无论我如何尝试,我最终都会得到第一场比赛(1153)。如何匹配已知模式的“向后”?
答案 0 :(得分:0)
在C#中,你可以做到
Match theMatch = Regex.Match(source, pattern, RegexOptions.RightToLeft);
将从最后开始匹配。
答案 1 :(得分:0)
怎么样?
<a href="localhost\/(\d+),Test\d*"> <img src="\w+\.gif">
答案 2 :(得分:0)
答案 3 :(得分:0)
如果你坚持使用正则表达式,那么有一些边界条件会很好;或多或少相似的文字不应该匹配?
话虽如此,我可能会选择像
这样的东西(\d+)[^"\d]+"[^"]+"[^"\d]+\d+\.gif
并提取第一个带括号的子匹配(假设[^\d]
既不匹配你的语言中的换行符也不匹配数字;我对它不太熟悉。)