我有这 3 个 html 标签,我想选择圆括号之前一行的所有内容:
<li><a href="page-1.html" title="Page 1">Page 1 (22)</a></li>
<li><a href="page-2.html" title="Page 2">Page 2 (18)</a></li>
<li><a href="page-3.html" title="Page 3">Page 3 (23)</a></li>
因此,输出应该是:
(22)</a></li>
(18)</a></li>
(23)</a></li>
我的正则表达式解决方案是:
寻找:(?s)(<li><a href=.*?)(\()
问题是我的正则表达式也选择了左括号。
答案1
对于这样的工作,展望是你的朋友:
- Ctrl+H
- 找什么:
<li><a href=.*?(?=\()
- 用。。。来代替:
LEAVE EMPTY
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 查看
. matches newline
- Replace all
解释:
<li><a href= # literally
.*? # 0 or more any character
(?=\() # positive lookahead, make sure we have an opening parenthesis after
截图(之前):
截图(之后):
答案2
搜索: (?s)(<li><a href=.*?)(\()
替换为:\2