首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex匹配序号,例如DE +10或AT + 10数字

Regex匹配序号,例如DE +10或AT + 10数字
EN

Stack Overflow用户
提问于 2015-09-28 13:26:36
回答 1查看 35关注 0票数 0

实际上,我正试图在字符串中匹配一些订单编号。

字符串可能如下所示:

代码语言:javascript
复制
SDSFwsfcwqrewrPL0000018604ergerzergdsfa

代码语言:javascript
复制
FwsfcwqrewrAT0000018604ergerzergdsfaD

我需要匹配"PL0000018604“或"AT0000018604”。

事实上,我用的是类似的东西,而且效果很好:

代码语言:javascript
复制
.?(AT[0-9]{10})|(BE[0-9]{10})|(FR[0-9]{10})|(IT[0-9]{10})

但是我们得到的顺序前缀越多,表达式就越长。它总是2个大写字符,后面跟着10个数字,我想指定不同的大写字符。

有更短的版本吗?

(谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 13:30:10

如果前缀必须是特定的,那么没有什么方法可以使模式更短。但是,您可以在表达式前面收集所有前缀,因此只需要使用一次数字部分。

例如:

代码语言:javascript
复制
(AT|BE|FR|IT)[0-9]{10}

根据您如何调用它,如果您需要将整个表达式作为一个组来捕获(相对于简单匹配,这正是问题所在),您可以在整个表达式周围添加括号。这并不改变匹配的内容,但它将更改任何函数使用表达式返回的内容。

代码语言:javascript
复制
((AT|BE|FR|IT)[0-9]{10})

当然,如果您只希望将数字部分作为一个单独的组捕获,则可以添加更多的括号。

代码语言:javascript
复制
((AT|BE|FR|IT)([0-9]{10}))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32824232

复制
相关文章

相似问题

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