我想测试字符串是否损坏,使用正则表达式查找违反重复字符序列的情况最简单。假设用于验证完整性的序列是0到9。
例如,"0123456790123456789"将与"79"匹配,因为缺少"8"。
"01234567555890123456789"将与"75558"匹配,因为"555"不属于。返回的特定字符串并不重要,只是至少标记损坏的第一个位置。
如果正则表达式可以实现这一点,我如何用正则表达式实现这一目标?
您可以拼写出这样的序列:
(0[^1]|1[^2]|2[^3]|3[^4]|4[^5]|5[^6]|6[^7]|7[^8]|8^[9]|9[^0])
在01234567555890123456789
中,它返回两个匹配75
和55
——它将至少可靠地找到第一个断开的链路。
我不认为单独使用regex可以做更多的事情,因为regex本身无法进行排序比较。