如何使用 sublime text 中的正则表达式删除单词之间的空格?

How to remove spaces between words using regular expression in sublime text?

我有一些值如下所示:

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

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

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

$lang\['.*'\]

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

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

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

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

提前致谢!

你可以使用

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

说明

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

并替换为空字符串

Regex demo

要同时检查结束 ] ,其中之间不能有方括号,您可以添加正向先行:

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

Regex demo