大家好,我试着搜索网站,但我无法真正找到或理解我正在寻找的正则表达式。
我的常规快递必须是让3-7个字母,然后出售,或从年份4位数开始,然后输入前3个首字母。
例如,:hamcookOFF2012ham
我的正则表达式代码是
(regexp="\D{3,7}(OFF|SALE)\d{4}"
这使我能够得到到今年,但我如何才能得到前3个字符?
发布于 2014-07-26 19:11:47
您可以使用反向引用来实现这一点,我建议如下:
([a-zA-Z]{3})[a-zA-Z]{0,4}(OFF|SALE)\d{4}\1\1与第一个捕获组匹配的文本相同。注意: \D匹配非数字字符(除0-9外),使用[a-zA-Z]严格匹配字母字符。
发布于 2014-07-26 19:11:01
您可以使用一个组(括号中)捕获前3个字母,并按以下方式引用它:
(\D{3})\D{0,4}(OFF|SALE)\d{4}\1圆括号中的\D{3}将保存在编号为1的组中,反向引用\1引用该组所匹配的任何内容。
注意事项:\D还将匹配特殊字符,如逗号或下划线。如果只匹配字母,请使用[a-zA-Z]
发布于 2014-07-26 19:18:10
您可能正在寻找一个正则表达式,它与以前捕获组的引用相匹配。下面,\1是对第一个捕获组(这是前三个非数字)的反向引用:
^(\D{3})(\D{0,4})(OFF|SALE)\d{4}(\1)$https://stackoverflow.com/questions/24974538
复制相似问题