我有一个很大的有效JavaScript文件(utf-8),我需要从中自动提取所有文本字符串.
为简单起见,该文件中不包含任何注释块,只包含有效的ES6 JavaScript代码.
一旦我发现的发生'
或"
或者',我应该扫描文本块的结尾,是我卡住了,因为所有可能的变化,比如"'"
,'"'
"\'","\"", '"
,`\``等
是否有已知和/或可重用的算法来检测有效的ES6 JavaScript文本块的结尾?
UPDATE-1:我的JavaScript文件不仅很大,我还必须以块的形式处理它,因此Regex绝对不可用.我不想让我的问题复杂化,提到联合代码块,我会自己解决这个问题,如果我有一个算法可以处理内存中的单个代码.
更新-2:我最初开始工作,感谢这里给出的许多建议,但是由于正则表达式,我再次陷入困境.
正则表达式的示例打破了迄今为止建议的任何文本检测技术:
/'/ /"/ /\`/
仔细研究了这个问题,通过阅读:JavaScript如何检测正则表达式?我担心在JavaScript中检测正则表达式是一个全新的球类游戏,值得一个单独的问题,否则它会变得太复杂.但是,如果有人能指出我正确的方向,我非常感谢...
更新3:经过大量研究后,我遗憾地发现我无法想出一个适用于我的算法的算法,因为正则表达式的存在使得任务比最初想象的要复杂得多.根据以下内容:解析Javascript时,什么决定了斜杠的含义?确定JavaScript中正则表达式的开头和结尾是最复杂和最复杂的任务之一.如果没有它,我们就无法弄清楚符号'
,''和` 何时打开文本块或者它们是否在正则表达式中.