首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式重复前三个字符

正则表达式重复前三个字符
EN

Stack Overflow用户
提问于 2014-07-26 19:06:09
回答 3查看 174关注 0票数 1

大家好,我试着搜索网站,但我无法真正找到或理解我正在寻找的正则表达式。

我的常规快递必须是让3-7个字母,然后出售,或从年份4位数开始,然后输入前3个首字母。

例如,:hamcookOFF2012ham

我的正则表达式代码是

(regexp="\D{3,7}(OFF|SALE)\d{4}"

这使我能够得到到今年,但我如何才能得到前3个字符?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-26 19:11:47

您可以使用反向引用来实现这一点,我建议如下:

代码语言:javascript
复制
([a-zA-Z]{3})[a-zA-Z]{0,4}(OFF|SALE)\d{4}\1
  • \1与第一个捕获组匹配的文本相同。

注意: \D匹配非数字字符(除0-9外),使用[a-zA-Z]严格匹配字母字符。

票数 2
EN

Stack Overflow用户

发布于 2014-07-26 19:11:01

您可以使用一个组(括号中)捕获前3个字母,并按以下方式引用它:

代码语言:javascript
复制
(\D{3})\D{0,4}(OFF|SALE)\d{4}\1

圆括号中的\D{3}将保存在编号为1的组中,反向引用\1引用该组所匹配的任何内容。

注意事项\D还将匹配特殊字符,如逗号或下划线。如果只匹配字母,请使用[a-zA-Z]

票数 2
EN

Stack Overflow用户

发布于 2014-07-26 19:18:10

您可能正在寻找一个正则表达式,它与以前捕获组的引用相匹配。下面,\1是对第一个捕获组(这是前三个非数字)的反向引用:

代码语言:javascript
复制
^(\D{3})(\D{0,4})(OFF|SALE)\d{4}(\1)$
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24974538

复制
相关文章

相似问题

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