我在notepad++ (地址)中有一个文本,该文本以下列形式存储:
一些数字(1或更多)比一些文本,然后是一些数字,然后是一些文本
我想搜索所有这些,并将其改为:
第一个数字,然后是文本,然后是句子“邮政编码”,然后是数字,然后是文本的其余部分。
例子:
阿姆斯特丹皇后街47000号15号
变成:
15皇后街邮编47000阿姆斯特丹
我试过这样的代码:
^(\d*)(.*)(\d)
代之以:
\1\2 Postal Code \3它不工作..。我在脑子里尝试过这么多其他的密码,但是没有用。
因为记事本得到整个第二个号码..。如果只取第二个数字中的第一个数字,问题就解决了。
发布于 2013-12-31 09:47:28
您需要为一个非贪婪的匹配添加?,它将匹配最后一个组的第一个数字。我也会更改和使用+量词,因为您声明它以一些数字(1或更多)开始。
下面这个怎么样?
Find: ^(\d+)(.*?)(\d)
Replace: \1\2Postal Code \3如果你想的话,你可以简化一下。
Find: ^(\d+\D+)(?=\d)
Replace: \1Postal Code给定您的输入,使用上述两个表达式,我将得到以下输出:
15 queen street Postal Code 47000 Amsterdam发布于 2013-12-31 09:41:32
对不情愿的(非贪婪的)量词使用.*?。
docs.oracle.com/javase/tutorial/essential/regex/quant.html
https://stackoverflow.com/questions/20855126
复制相似问题