javascript - JavaScript String.split(): 分割为 ; 前面没有反斜杠?
问题描述
我需要按每个分割一个字符串;未转义(即前面有 0、2、4、6 等反斜杠)。
已经有几个关于这个问题的线程,但我没有找到任何对我有用的东西。我尝试的每个正则表达式要么给出错误,要么在任何有效的分隔符处拆分字符串,或者根本不拆分。
"statement1(); statement2('\;');".split(/(\\.;[^;])+/g)
这例如刚刚返回 ['statement1(); 语句2(\';\');' ]。还有什么想法吗?
解决方案
您可以使用后向断言来解决此问题:
/(?<=[^\\]);/
应该做你需要的。它说 match;
前面有一个不是\
.
在另一种编程语言中,我会使用否定的后向断言,但只有最新版本的 JavaScript 支持它,因此将其编写为积极的后向断言更安全,如上所述。
推荐阅读
- jsoup - Jsoup 返回状态码 405(但它应该接受 POST)
- angular - 离子 4 的多个吐司
- arduino - 继电器 NC NO 引脚是否有不同的容量?
- angular - 对数据库的全局访问不起作用
- ssl - 从多个受信任的 CA 提供商处请求 ssl 证书是否会产生负面影响?
- sql - 如何将子查询结果(具有嵌套连接)与另一个表连接?
- vb.net - 嵌套列表/列表集合
- java - 出现键盘时 ScrollView 不起作用
- javascript - 如何将数据从一个html页面传递到另一个?
- python - 自定义 Spacy NER 模型的总体 F 分数与单个实体 F 分数之间的巨大差异