我有一个很大的有效 JavaScript 文件 (utf-8),我需要从中自动提取所有文本字符串。
为简单起见,该文件不包含任何注释块,仅包含有效的 ES6 JavaScript 代码。
一旦我发现发生'
or "
或`,我应该扫描文本块的末尾,这是我陷入困境的地方,考虑到所有可能的变化,例如"'"
, '"'
, "\'", '\"','"
、``\`` 等
是否有已知的和/或可重用的算法来检测有效 ES6 JavaScript 文本块的结尾?
更新1:我的 JavaScript 文件不仅很大,而且还必须将其作为流、分块处理,因此 Regex 绝对不可用。我不想使我的问题复杂化,提到联合代码块,如果我有一个可以适用于内存中的单段代码的算法,我会自己解决这个问题。
更新2:感谢这里给出的许多建议,我最初得到了这个工作,但后来由于正则表达式,我再次陷入困境。
破坏迄今为止建议的任何文本检测技术的正则表达式示例:
/'/
/"/
/\`/
仔细研究这个问题后,阅读以下内容:JavaScript 如何检测正则表达式? https://stackoverflow.com/questions/8334168/how-does-javascript-detect-regular-expressions,恐怕在 JavaScript 中检测正则表达式是一个全新的球赛,值得一个单独的问题,否则它会变得太复杂。但如果有人能在这个问题上为我指出正确的方向,我非常感激......
更新3:经过大量研究后,我遗憾地发现我无法想出一种适用于我的情况的算法,因为正则表达式的存在使任务比最初想象的更加复杂。根据以下情况:解析 Javascript 时,什么决定了斜杠的含义? https://stackoverflow.com/questions/5519596/when-parsing-javascript-what-determines-the-meaning-of-a-slash确定 JavaScript 中正则表达式的开头和结尾是最复杂、最复杂的任务之一。没有它我们就无法弄清楚符号何时'
、 '"' 和 ` 正在打开文本块或者它们是否位于正则表达式内。