【问题标题】:Find all patterns matching regular expression using the Kate editor使用 Kate 编辑器查找所有匹配正则表达式的模式
【发布时间】:2016-07-09 10:26:01
【问题描述】:

我经常使用 Kate 编辑器。在 Kate 中可以使用正则表达式查找模式。例如,表达式\d{3} 将在以下文本中查找所有出现的 3 个连续数字:

asdfsdf 234 dffd 234 f
d 182 sdsdas 182 sfdds
fdsfk 324 d 890 dfsdfd

是否可以以某种方式提取匹配的字符串?或者简单地说:如何仅使用 Kate 获得以下数字?这可能以简单的方式还是可能使用插件?我知道我可以使用 pythons re.findall() 方法,但这不是我想要的。

234
234
182
182
324
890

【问题讨论】:

  • \d{3} 替换为$0\n,然后将(\d{3})|. 替换为$1
  • 这给了我很多行,例如 $1$1$1$1$1$1 我错过了什么吗?
  • 也许反向引用写成\1
  • 好吧,你是对的。这行得通,谢谢!你能给我解释一下第二个替换吗?是什么|。做什么?

标签: regex find substring findall kate


【解决方案1】:

我的两步法包括两个步骤:

  • (\d{3})在3位数字后添加一个换行符-->\1\n替换(其中\1指的是捕获的值)然后

  • 删除任何不是三位数字起点的字符,并重新插入使用 (\d{3})|. 替换的捕获组捕获的 3 位数字 --> \1 替换。

(\d{3})|. 模式匹配并捕获 3 位数字或仅匹配除换行符以外的任何字符,\1 是对使用 (\d{3}) 捕获的值的反向引用。

可能会出现一些空行,但通常可以使用内置功能将其删除。

【讨论】:

  • 感谢您的解释。我更新了你的帖子,因为它在 kate 中是 \1 而不是 \0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 2015-12-26
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多