示例代码:
<div>content</div><a href="http://www.example.com">jump link</a>
<div>content</div><a href="http://www.example.com">jump link</a>
<div>content</div><a href="http://www.example.com">jump link</a>
我想替换字符串中匹配的第一个或最后一个锚元素(
我的正则表达式是:
<a.[^>]*>.[^<>]*</a>
将匹配所有锚元素
实际上我只想替换第一场比赛,但我真的很好奇在比赛结束时替换的可能性。
由于
答案 0 :(得分:0)
我只想替换仅限第一场比赛
如果您不使用g
global flag,则只会替换第一个匹配项。 See fiddle:
var res = str.replace(/<a[^>]*>[^<]*<\/a>/, "first");
要将匹配项绑定到字符串的开头,请使用^
start anchor。
对在比赛结束时替换的可能性感到好奇。
如果您只想替换字符串末尾的内容,请使用end anchor $
但是为了替换模式的最后一个匹配,请在之前添加一些东西capture。用“$1
替换... ... $1
包含匹配的第一个parenthesized subpattern。 See fiddle:
var res = str.replace(/([\s\S]*)<a[^>]*>[^<]*<\/a>/, "$1last");
([\s\S]*)
greedily吃掉any character并抓取到$1
,直到找到后续模式。
Sidenote :正则表达式不适合解析任意html。考虑using a parser。