【问题标题】:Regex to find text inside parenthesis正则表达式在括号内查找文本
【发布时间】:2017-09-10 19:28:41
【问题描述】:

我在字符串文字周围有不匹配的引号(单引号和双引号)。

我需要将引号与单引号匹配。

我正在尝试替换以下内容:

route('any text can be here and special characters")

与:

route('any text can be here and special characters')

我尝试了以下正则表达式:

查找

route('(.*?)")

替换

route('(.*?)')

但这不起作用。

我怎样才能实现我想要做的事情?

【问题讨论】:

    标签: regex sublimetext3 sublimetext


    【解决方案1】:

    您的正则表达式不起作用,因为您无法通过尝试匹配 ( 来匹配文字 ( 字符,因为该字符在正则表达式中具有特殊含义(例如,在用于替换的正则表达式)。

    为了匹配类似的内容,您需要引用特殊字符,以便正则表达式知道您的意思是匹配文字:

    查找:

    route\('(.*?)"\)
    

    【讨论】:

    • 这很有趣,因为我对 old('something') 也有类似的问题,但是 ST3 中的 old\('(.*?)'\) 不起作用
    • @Sebastian 您可能需要仔细检查Whole Words 和/或Case Sensitive 是否未打开;其中任何一个都会干扰比赛
    【解决方案2】:

    这个怎么样?

    请执行以下操作。在这种情况下,它假设 Sublime Text 已启动。

    1. 推送Ctrl + H。这样,替换模式就启动了。
    2. 推送Alt + R。这样就可以使用正则表达式了。
    3. (route\('.*?)(\") 导入到Find What:
    4. $1\' 导入到Replace With:
    5. 按下替换按钮或全部替换按钮。

    您也可以使用(route\('.*?)(\")(\)) 表示Find What:$1\'$3 表示Replace With:

    结果:

    发件人:

    route('any text can be here and special characters")
    

    收件人:

    route('any text can be here and special characters')
    

    如果我误解了你的问题,我很抱歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 2014-02-18
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多