是否可以输出与正则表达式不匹配的字符串(其索引)中的第一个字符?是否可以仅使用正则表达式匹配操作或必须使用更复杂的操作?
例如,在JavaScript中,我有一个正则表达式/^\d{3}\s\d{2}$/
,它匹配具有3个数字后跟一个空格和另外2个数字的字符串。我有一个字符串"123a45"
,我将这个正则表达式应用于它。这样做(例如,"123a45".match(/^\d{3}\s\d{2}$/)
)返回null
,因为正则表达式没有匹配。如何获取导致此不匹配的第一个字符(在本例中为"a"
,索引为3的字符)?
其中一个用例是直接指向用户输入的字符串中根据用于验证的某些正则表达式无效的字符。
|
的正则表达式,您不知道实际导致问题的字符是哪一个,因为有两种可能情况)。对于某些特定问题,在一定程度上可能是可行的。 - nhahtdh|
时,识别匹配失败的部分? - Jindřich Mynarz([A-Z][0-9]{2}|[0-9]{2}[A-Z])
和输入的090
,你会报告哪个字符?第一个0
还是最后一个0
?匹配失败是因为它未能满足OR
指定的所有情况,而导致失败的原因可能因情况而异。 - nhahtdh