Notepad ++正则表达式,获取数字的第一个数字

时间:2013-12-31 09:37:15

标签: regex notepad++

我在记事本++(地址)中有一个文本,以下列形式存储:
一些数字(1或更多)比一些文本然后一些数字然后一些文本
我想搜索并替换所有这些:
第一个数字然后是文本,然后是句子“邮政编码”,然后是数字而不是文本的其余部分 示例:

  

15皇后街47000阿姆斯特丹

成为:

  

15 Queen Street邮政编码47000阿姆斯特丹

我试过这段代码:
^(\d*)(.*)(\d)
替换为:
\1\2 Postal Code \3 它不起作用..我已经尝试了很多其他代码在我的头脑中,但非工作 因为记事本得到了整个第二个数字..如果它只需要第二个数字的第一个数字就可以解决问题

2 个答案:

答案 0 :(得分:4)

您需要为非贪婪匹配添加?,它将匹配最后一组的第一个数字。我也会更改并使用+量词,因为您声明它以某些数字(1或更多)开头。

以下情况如何?

Find: ^(\d+)(.*?)(\d)
Replace: \1\2Postal Code \3

如果您愿意,可以简化一下。

Find: ^(\d+\D+)(?=\d)
Replace: \1Postal Code

根据您的输入,使用上述两个表达式,我得到以下输出:

15 queen street Postal Code 47000 Amsterdam

答案 1 :(得分:0)

.*?用于不情愿(非贪婪)的量词。

docs.oracle.com/javase/tutorial/essential/regex/quant.html