使用 Notepad++ 的正则表达式查找排除子字符串的字符串模式
Regex with Notepad++ to find a string pattern that excludes a substring
我有一个包含 10 万行 html 并填充了 <tr> ... </tr>
标签的文档。在这些多行标记集的每一个内部的某个地方都有一个带有单词 "purpose" 的元素,除了一个。我需要找到以 <tr>
开头并且在结束 </tr>
标记之前有一堆字符并且在该标记集中没有字符串实例 "purpose" 的页面长字符串。我正在使用带有 Regex 的 Notepad++ v7 搜索并匹配换行符。通过搜索 <tr>(.*?)</tr>
可以轻松匹配 tr 字符串
这匹配一组且仅匹配一组标签,其间包含所有文本。我不能做的是找到表达式来找到这个没有 "purpose" 的字符串。我已经尝试过 <tr>(?!.*?"purpose")(.*?)</tr>
它将在最后一个包含 "purpose" 的字符串之后找到第一个 tr 字符串(是的,我需要包括引号)和许多变体,并阅读正则表达式否定的前后教程,但没有有用。我有很多类似的问题与此文本缺少内容有关,所以如果有人知道如何执行此操作,请提前致谢!!!
这应该可以解决问题:
<tr>((?!"purpose").)*?</tr>
本质上,
- 找到开始标签并跳转到后面的字符。
- 检查以确保它和连续字符不匹配 "purpose"(包括引号)
- 前进一个字符,如果还没有到达结束标记,returns到2。
- 在结束标记处停止。
我有一个包含 10 万行 html 并填充了 <tr> ... </tr>
标签的文档。在这些多行标记集的每一个内部的某个地方都有一个带有单词 "purpose" 的元素,除了一个。我需要找到以 <tr>
开头并且在结束 </tr>
标记之前有一堆字符并且在该标记集中没有字符串实例 "purpose" 的页面长字符串。我正在使用带有 Regex 的 Notepad++ v7 搜索并匹配换行符。通过搜索 <tr>(.*?)</tr>
可以轻松匹配 tr 字符串
这匹配一组且仅匹配一组标签,其间包含所有文本。我不能做的是找到表达式来找到这个没有 "purpose" 的字符串。我已经尝试过 <tr>(?!.*?"purpose")(.*?)</tr>
它将在最后一个包含 "purpose" 的字符串之后找到第一个 tr 字符串(是的,我需要包括引号)和许多变体,并阅读正则表达式否定的前后教程,但没有有用。我有很多类似的问题与此文本缺少内容有关,所以如果有人知道如何执行此操作,请提前致谢!!!
这应该可以解决问题:
<tr>((?!"purpose").)*?</tr>
本质上,
- 找到开始标签并跳转到后面的字符。
- 检查以确保它和连续字符不匹配 "purpose"(包括引号)
- 前进一个字符,如果还没有到达结束标记,returns到2。
- 在结束标记处停止。