0

我正在尝试为搜索创建一个正则表达式,它将查看以下代码并仅返回 id 而不是类:

1   id="contact"
2   class="contact"
3   #contact
4   .contact

我想contact从第 1 行和第 3 行返回,而不是第 2 行和第 4 行。

这是为了跨多个文件进行搜索,以避免单独检查每个文件并检查它是否需要更改。

这可能吗?

4

1 回答 1

0

干得好:

/(?:#|id=")(\w+)"?/g

以任一开头#id="后跟单词字符的字符串。我敢打赌,您可能希望增强它以处理破折号和下划线。

在这种情况下,第一个组是非捕获的,ID 文本将是您的第一个捕获组$1

更新

这个:

(?:(?<=id=")|(?<=#))(contact)

使用积极的后向查找来查找您的前缀并仅匹配字符串“contact”。这在 JavaScript 中不起作用(因此您无法在线测试它),但可以在文本编辑器或 CLI 工具(如ack.

于 2013-01-10T16:52:44.603 回答