我正在尝试使用的特定正则表达式有些困难.我在文档中搜索字符串的每次出现(为了我的目的,我会说它是" mystring "),除了它在标签中的位置,例如
<a href="_mystring_">
Run Code Online (Sandbox Code Playgroud)
不应该匹配,但是
<a href="someotherstring">_mystring_</a>
Run Code Online (Sandbox Code Playgroud)
应该匹配,因为它不在标签内部(内部意思是"在<和>标记内")我也使用.NET的正则表达式函数.
Nic*_*ggs 23
这应该这样做:
(?<!<[^>]*)_mystring_
Run Code Online (Sandbox Code Playgroud)
它使用负面外观来检查匹配的字符串是否没有<之前没有相应的>
Joh*_*den 10
当你的正则表达式处理器不支持变长后看时,试试这个:
(<.+?>[^<>]*?)(_mystring_)([^<>]*?<.+?>)
Run Code Online (Sandbox Code Playgroud)
保留捕获组1和3并替换捕获组2:
例如,在Eclipse中,找到:
(<.+?>[^<>]*?)(_mystring_)([^<>]*?<.+?>)
Run Code Online (Sandbox Code Playgroud)
并替换为:
$1_newString_$3
Run Code Online (Sandbox Code Playgroud)
(其他正则表达式处理器可能使用不同的捕获组语法,例如\ 1)
搜索的另一个正则表达式对我有用
(?![^<]*>)_mystring_
Run Code Online (Sandbox Code Playgroud)
资料来源:https://stackoverflow.com/a/857819/1106878
| 归档时间: |
|
| 查看次数: |
11821 次 |
| 最近记录: |