我有一个大型的有效JavaScript文件(utf-8),需要自动提取其中的所有文本字符串。
为简单起见,该文件不包含任何注释块,只有有效的ES6 JavaScript代码。
一旦我找到
是否有已知和/或可重用的算法来检测有效的ES6 JavaScript文本块的结尾?
更新1:我的JavaScript文件不仅很大,而且我还必须将其作为流在块中处理,因此Regex绝对不能使用。我不想让问题复杂化,提到代码块的联合,如果我有一个可以针对内存中单个代码片段工作的算法,我会自己解决。
更新2:我最初通过许多建议使其工作,但由于正则表达式,我又卡住了。
正则表达式的示例会破坏到目前为止建议的任何文本检测技术:
经过仔细研究,阅读此文:How does JavaScript detect regular expressions?,我恐怕在JavaScript中检测正则表达式是一个全新的难题,值得分开讨论,否则会变得太复杂。但如果有人能为我指点迷津,我将不胜感激... 更新3: 经过多方调查研究,我很遗憾地发现在我的情况下我无法提供可行的算法,因为正则表达式的存在使任务变得比最初想象的要复杂得多。根据以下链接所述:When parsing Javascript, what determines the meaning of a slash?,确定JavaScript中正则表达式的开头和结尾是最复杂和费解的任务之一。而没有这些信息,我们就不能确定符号
为简单起见,该文件不包含任何注释块,只有有效的ES6 JavaScript代码。
一旦我找到
'
或"
或`的出现,我应该扫描文本块的结尾,这就是我卡住的地方,因为有很多可能的变化,比如"'"
、'"'
、"\'"、'\"'、'"
、`\``等等。是否有已知和/或可重用的算法来检测有效的ES6 JavaScript文本块的结尾?
更新1:我的JavaScript文件不仅很大,而且我还必须将其作为流在块中处理,因此Regex绝对不能使用。我不想让问题复杂化,提到代码块的联合,如果我有一个可以针对内存中单个代码片段工作的算法,我会自己解决。
更新2:我最初通过许多建议使其工作,但由于正则表达式,我又卡住了。
正则表达式的示例会破坏到目前为止建议的任何文本检测技术:
/'/
/"/
/\`/
经过仔细研究,阅读此文:How does JavaScript detect regular expressions?,我恐怕在JavaScript中检测正则表达式是一个全新的难题,值得分开讨论,否则会变得太复杂。但如果有人能为我指点迷津,我将不胜感激... 更新3: 经过多方调查研究,我很遗憾地发现在我的情况下我无法提供可行的算法,因为正则表达式的存在使任务变得比最初想象的要复杂得多。根据以下链接所述:When parsing Javascript, what determines the meaning of a slash?,确定JavaScript中正则表达式的开头和结尾是最复杂和费解的任务之一。而没有这些信息,我们就不能确定符号
'
、'"'和`是否正在打开文本块或者它们是否在正则表达式内部。