【问题标题】:How to replace Kate regular expression如何替换 Kate 正则表达式
【发布时间】:2014-04-18 23:48:01
【问题描述】:

我正在使用 Kate 编辑器。这是一个显示我的问题的最小示例:

我有一个文件,其中包含以下内容:

\command{stuff}

其中的东西是一些任意的字母串。我想用

替换它
\disobey{stuff}

内容不变。正则表达式:

\\command\{[a-zA-Z]*\}

匹配这样的表达式。所以我用 CTRL-r 拉出替换对话框,然后输入

Find: \\command\{[a-zA-Z]*\}
Replace: \\disobey\{\1\}

所以在文档中,说的是一个实际的实例,

\command{exchange}

当我点击替换按钮时会更改为

\disobey{1}

在 Kate 文档:附录 B:正则表达式中,\1 应该与使用的第一个模式匹配。这确实是正确的语法吗?我也尝试过 $1、#1 和其他各种东西。

【问题讨论】:

  • 在完全相同的文档中,它说 \1 匹配“第一个 sub 模式 括在括号中

标签: regex kate


【解决方案1】:

这是直接来自文档的引用:

字符串\1 引用括号中的第一个子模式

所以你需要将[a-zA-Z]* 放在一个捕获组中,比如([a-zA-Z]*)

Find: \\command\{([a-zA-Z]*)\}
Replace: \\disobey\{\1\}

【讨论】:

  • 说实话,那一点文档令人困惑。在我猜你正在引用的附录 B 中,他们首先讨论了模式。然后他们讨论子模式。 sub应该是指“替代”。老实说,我认为这意味着 ab
【解决方案2】:

( ) 包装值以将其捕获为一个组,以便您可以在替换中使用它

所以像这样改变你的查找正则表达式:

\\command\{([a-zA-Z]*)\}

你应该做得很好。

【讨论】:

  • @JonathanGallagher,很高兴能帮上忙;)
  • @TheGuywithTheHat,下一次,我相信你会打败我;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2019-01-24
  • 2015-01-24
  • 1970-01-01
相关资源
最近更新 更多