我正在尝试使用JavaScript编写一个词法分析器,用于查找简单领域特定语言的标记。我开始采用简单的实现方式,它只是尝试从当前行的位置匹配后续的正则表达式,以查找其是否匹配某些标记格式并接受它。
问题在于,当某些内容不匹配正则表达式时,整个正则表达式都失败了,因此我不知道到底是哪个字符导致它失败。
有没有办法找出导致正则表达式失败的字符串位置?
INB4:我不是在询问如何调试我的正则表达式并验证其正确性。它已经正确,可以匹配正确的字符串并丢弃不正确的字符串。我只想编程方式知道正则表达式停止匹配的确切位置,以查找用户输入中不正确的字符的位置,以及其中有多少个字符是正确的。
是否有一些方法仅使用简单的正则表达式来完成它,而不必继续实现全面的有限状态自动机?