选择除方括号内的数字之外的所有内容并替换

时间:2012-03-01 10:07:43

标签: regex notepad++

就像标题所说我试图创建一些正则表达式,除了方括号内的数字之外,还可以选择任何内容。例如:

6483463456[1234]623235[456]783467546[789]67467467

我想替换除方括号内的数字之外的所有内容(只留下括号中的数字)。我想要这个:

[1234][456][789]

这是我到目前为止所做的,但它不起作用:

[^\[.*\]]

上面的代码单独查找数字,包括括号内的数字。

\[(.*?)\]

上面的代码什么也没做,但看起来没错。

我关闭了吗?

2 个答案:

答案 0 :(得分:3)

你想要拿起方括号周围的数字,然后只捕捉方括号(和括号)之间的数字,以摆脱其余部分。

此外,要仅匹配数字,您应使用\d代替.

查找

\d*(\[\d*?\])\d*

将所有内容替换为:

\1

答案 1 :(得分:0)

如果字符串的形式永远不会改变:

  • 任何地方都没有空格
  • 所有字符均为数字

然后你可以使用:

(\d*)\[(\d*)\](\d*)

这将捕获所有三个组,因此您可以将整个匹配替换为第二组(括号内的数字)。

相关问题