搜索连续的序列违规

Search for consecutive sequence violation

我想测试字符串是否损坏,最简单的方法是使用正则表达式来查找重复字符序列的违规行为。假设用于验证完整性的序列是 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 它 returns 两个匹配 7555 - 它至少会可靠地找到第一个损坏的 link.

我不认为仅在正则表达式中可以做更多的事情,因为正则表达式本身不能进行排序比较。