我正在尝试为搜索创建一个正则表达式,它将查看以下代码并仅返回id而不是类:
1 id="contact"
2 class="contact"
3 #contact
4 .contact
我想从第1行和第3行返回contact
,而不是第2行和第4行。
这是为了跨多个文件进行搜索,以避免单独检查每个文件并检查是否需要更改。
这可能吗?
答案 0 :(得分:0)
你走了:
/(?:#|id=")(\w+)"?/g
字符串以#
或id="
开头,后跟单词字符。你可能想要增强它来处理破折号和下划线,我敢打赌。
在这种情况下,第一组是非捕获的,ID文本将是您的第一个捕获组$1
。
<强>更新强>
这一个:
(?:(?<=id=")|(?<=#))(contact)
使用正面的lookbehind来找到你的前缀并匹配字符串&#34; contact&#34;。这不适用于JavaScript(因此您无法在线测试),但可以在文本编辑器或CLI工具(如ack
)中使用。