【问题标题】:How to remove spaces between words using regular expression in sublime text?如何使用崇高文本中的正则表达式删除单词之间的空格?
【发布时间】:2020-06-19 06:06:39
【问题描述】:

我有一些值如下所示:

$lang['Delivery Charge'] = 'Delivery Charge';

$lang['Frequently Asked Questions'] = 'Frequently Asked Questions';

我正在使用这个正则表达式来选择变量索引:

\$lang\['.*'\]

现在我怎样才能只为不在值中的变量索引替换单词之间的空格。

我的意思是我的最终结果将如下所示:

$lang['DeliveryCharge'] = 'Delivery Charge';

$lang['FrequentlyAskedQuestions'] = 'Frequently Asked Questions';

提前致谢!

【问题讨论】:

    标签: regex sublimetext3


    【解决方案1】:

    你可以使用

    (?:\$\w+\['|\G(?!^))\w+\K\h+
    

    解释

    • (?:非捕获组
      • \$\w+\[' 匹配 $ 和 1+ 个单词字符和 ['
      • |或者
      • \G(?!^)在上一场比赛结束时断言位置,而不是在开始时
    • )关闭非捕获组
    • \w+ 匹配 1+ 个单词字符
    • \K\h+ 重置匹配缓冲区并匹配 1+ 个水平空白字符

    并用空字符串替换

    Regex demo

    还要检查结束 ] ,中间不能有方括号,您可以添加一个正向前瞻:

    (?:\$\w+\['|\G(?!^))\w+\K\h+(?=[^][]*'])
    

    Regex demo

    【讨论】:

    • 嗨蒂姆,谢谢。我已经在 Sublime 3.2.2 中对其进行了测试,并且对于该版本它可以工作。
    • 非常感谢,这很有效,节省了我很多时间
    • @NazmulHasanNero,既然您是新来的,请查看该网站的tour。然后阅读:"What should I do when someone answers my question?"
    • @JvdV 非常感谢您的指导,我按照您的指导做了。
    • @Thefourthbird 你能不能给我写一个这个 lang('Add Area') 的正则表达式用于同样的目的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2016-08-07
    • 1970-01-01
    • 2023-04-08
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多