我正在尝试用JavaScript编写一个词法分析器来查找一个简单的特定于域的语言的标记.我从一个简单的实现开始,它只是尝试匹配一行中当前位置的后续正则表达式,以确定它是否与某些令牌格式匹配并接受它.
问题是,当这样的正则表达式中的某些内容不匹配时,整个正则表达式失败,所以我不知道哪个字符确实导致它失败.
有没有办法找出字符串中导致正则表达式失败的位置?
INB4:我不是在调试我的正则表达式并验证它的正确性.它已经正确,匹配正确的字符串并删除不正确的字符串.我只想以编程方式了解正则表达式停止匹配的位置,找出用户输入中不正确的字符的位置,以及它们中有多少是正常的.
有没有办法用简单的正则表达式来实现它,而不是继续实现一个完整的有限状态自动机?