【问题标题】:regex using Sublime使用 Sublime 的正则表达式
【发布时间】:2012-09-27 09:01:43
【问题描述】:

使用我选择的文本编辑器 Sublime 2,我想搜索包含未注释警报的代码。所以我需要一个正则表达式来找到“alert”但不是“//alert”或“// alert”。我不知道如何反转然后结合两个结果。 Sublime Text 对正则表达式使用 Boost 语法。感谢您的帮助。

【问题讨论】:

  • 由于\` and alert` 之间可能有多个空格,您可以在文本编辑器之外使用支持可变宽度前瞻工具的正则表达式搜索。

标签: regex sublimetext2


【解决方案1】:

您可以搜索前面没有// 的文本,因此

(?<!\/\/\s?)alert

编辑: 如果编辑器不支持变量后视,您必须在不同的后视中指定所有可能性

(?<!\/\/\s)(?<!\/\/)alert

【讨论】:

  • 我想说这行得通,但 Sublime 说遇到了无效的后向断言。 Boost 不支持可变长度后视
  • +1 用于使用 \s 而不仅仅是空格字符。转义 / 可能没有必要。
【解决方案2】:

试试这个:

(?<!//)(?<!// )alert

Boost 语法基于 Pearl RegExp。因此,应该支持负面的后视 (?&lt;!text)。在这个例子中,我使用了两次否定的lookbehind(有空格和没有空格),因为lookbehind 文本必须是固定长度的。

您可以在此处阅读有关 RegExp 中的lookaraound 功能的更多信息:
http://www.regular-expressions.info/lookaround.html

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 2020-09-17
    • 2019-08-05
    相关资源
    最近更新 更多