查找并替换匹配模式的特定数字,而不更改整个字符串

时间:2017-12-14 10:07:01

标签: regex replace sublimetext3

我正在使用Sublime text 3搜索功能并启用了正则表达式。 我有一个大文本文件,其中包含方括号的文本字符串。 例如:

blah blah bla bhal [e9] blah blah bla bhal blah blah 9 5 4
bla bhal blah blah bla bhal[`5b7k7s]
blah blah bla bhal blah blah bla bhal 
[^5bd9`ke93n]

我想用方括号替换其他符号中的特定数字。例如,我想将9更改为A,所以我需要上面的例子:

blah blah bla bhal [eA] blah blah bla bhal blah blah 9 5 4
bla bhal blah blah bla bhal[`5b7k7s]
blah blah bla bhal blah blah bla bhal 
[^5bdA`keA3n]

(提及未在sqare括号中的9未更改)

我试图用这样的正则表达式捕获数字

      \[?9?\]

我做错了什么?

1 个答案:

答案 0 :(得分:1)

这与notepad ++一起使用,我想它也适用于Sublimetext。

  • 查找:\[[^\]]*?\K9
  • 替换:A

您必须根据需要单击全部替换,以在单个括号中替换所有9(如果有多个)。与[^5bd9ke93n]一样,您必须点击两次。

<强>解释

\[      : open bracket
[^\]]*? : negative character class (ie. not a close bracket), 0 or more times, not greedy
\K      : forget all we have seen until this position
9       : literally 9