使用正则表达式重复使用单词

时间:2012-11-26 19:22:05

标签: regex sublimetext2

在文本文件中,我使用find来过滤以下选择

getEnvReadinessConfirmed(
getVersionAvailable(

(我使用get\w*\(来执行此操作)

有没有办法可以在单词出现后复制单词,如

getEnvReadinessConfirmed(getEnvReadinessConfirmed(
getVersionAvailable(getVersionAvailable(

我正在查看http://www.nncron.ru/help/EN/add_info/regexp.htm,特别是

{n,}    To repeat n or more times

有些提示,但无法正常工作。

希望我没有做任何非常愚蠢的事情,但这里是截图

enter image description here

enter image description here

非常感谢任何指针。

3 个答案:

答案 0 :(得分:1)

你可以尝试这一行:

(getEnvReadinessConfirmed\()+

这意味着一次找到你的字符串最小值加号是{1,}的别名。请注意屏蔽括号的(之前的反斜杠,以便也可以搜索此字符。

答案 1 :(得分:1)

您可以使用backreference

/(get\w+\()\1/

See it working on Rubular

此处它正在使用Sublime Text 2(根据您的问题标签)。

  1. cmd + F
  2. 按下左下角的按钮
  3. 在搜索字段
  4. 中输入(get\w+\()\1
  5. 点击查找
  6. sublime text 2


    以下是使用正则表达式进行查找/替换的方法

    before

    after

答案 2 :(得分:1)

我认为这就是你要找的东西

查找:(get\w+\()

替换:$1$1

换句话说,捕获组#1中匹配的子字符串,并将其替换为自身的两个副本。

你联系的那个引用太可怕了。对于初学者来说,它描述了一种特定的正则表达式风格(nnCron使用的风格),其语法非常不寻常(例如\b用于单词开头,\B用于结束 - of-word; (?#...)用于正面观察,(?~...)用于负面观察。虽然大多数语法元素都与Perl风格的正则表达式兼容,但是文档在描述它们方面做得很差。

SublimeText似乎使用Boost正则表达式库来支持其正则表达式,因此您最好使用Boost docs。还有一个很好的教程/参考网站here