正则表达式求匹配替换
给定一个字符串,需求是匹配[url]标签中的相对路径,如”/content/23″,将其替换为”www.abc.com/content/23″,同时不影响[url]标签外的相对路径。
- 匹配部分: /content/23(?=[^[]]*[/url])
- 替换部分: (/w ){2}(?=[^[]]*[/url]) 替换成 www.abc.com$0
正则表达式解释:
匹配部分:
- /content/23:匹配字符串中的 /content/23。
- (?=[^[]]*[/url]):正向先行断言,确保匹配的字符串后跟一个[url]标签的结尾([/url])。
替换部分:
- (/w ){2}:匹配两个以斜杠(/)开头的单词字符序列。
- (?=[^[]]*[/url]):正向先行断言,确保匹配的字符串后跟一个[url]标签的结尾([/url])。
- $0:替换为匹配的字符串本身。
使用示例:
给定字符串:
[url]/content/23[/url] /content/23
匹配结果:
/content/23
替换结果:
[url]www.abc.com/content/23[/url] /content/23
注意:
- 正则表达式区分大小写,如果需要匹配不区分大小写的相对路径,需要使用 /content/23(?i=[^[]]*[/url])。
- 如果相对路径中包含特殊字符,需要对这些特殊字符进行转义处理。