首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Notepad++正则表达式,获取数字的第一个数字。

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

Stack Overflow用户
提问于 2013-12-31 09:37:14
回答 2查看 1.4K关注 0票数 1

我在notepad++ (地址)中有一个文本,该文本以下列形式存储:

一些数字(1或更多)比一些文本,然后是一些数字,然后是一些文本

我想搜索所有这些,并将其改为:

第一个数字,然后是文本,然后是句子“邮政编码”,然后是数字,然后是文本的其余部分。

例子:

阿姆斯特丹皇后街47000号15号

变成:

15皇后街邮编47000阿姆斯特丹

我试过这样的代码:

^(\d*)(.*)(\d)

代之以:

\1\2 Postal Code \3它不工作..。我在脑子里尝试过这么多其他的密码,但是没有用。

因为记事本得到整个第二个号码..。如果只取第二个数字中的第一个数字,问题就解决了。

EN

回答 2

Stack Overflow用户

发布于 2013-12-31 09:47:28

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

下面这个怎么样?

代码语言:javascript
复制
Find: ^(\d+)(.*?)(\d)
Replace: \1\2Postal Code \3

如果你想的话,你可以简化一下。

代码语言:javascript
复制
Find: ^(\d+\D+)(?=\d)
Replace: \1Postal Code

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

代码语言:javascript
复制
15 queen street Postal Code 47000 Amsterdam
票数 4
EN

Stack Overflow用户

发布于 2013-12-31 09:41:32

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20855126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档