我想使用正则表达式来匹配这样的数字:
58158
60360
98198
那是格式ABCAB。
我使用下面的代码来匹配ABAB:
(([\d]){1,}([\d]){1,})\1{1,}
例如5858但是如何匹配ABCAB(58158)?
我想使用正则表达式来匹配这样的数字:
58158
60360
98198
那是格式ABCAB。
我使用下面的代码来匹配ABAB:
(([\d]){1,}([\d]){1,})\1{1,}
例如5858但是如何匹配ABCAB(58158)?
对于格式中的数字ABCAB:
(\d)(\d)\d\1\2
这对 没有任何限制A=B=C。对使用负前瞻A!=B!=C:
(\d)(?!\1)(\d)(?!\1|\2)\d\1\2
编辑:
没有边界匹配,因此58158将匹配36958158:
$num=36958158;
preg_match('/(\d)(?!\1)(\d)(?!\1|\2)\d\1\2/',$num,$match);
echo ">>> ".$match[0];
>>> 58158
要匹配 ABCAB 形式的整数,请使用\b(\d\d)\d(\1)\b.
\b是单词边界并\1引用第一组。
示例(在 JavaScript 中,以便可以在浏览器中进行测试,但它适用于大多数正则表达式解决方案):
var matches = '58158 22223 60360 98198 12345'.match(/\b(\d\d)\d(\1)\b/g);
给
["58158", "60360", "98198"]