【发布时间】:2018-04-07 23:07:46
【问题描述】:
这是一个非常简单的正则表达式,但我无法理解如何扩展此正则表达式,以便只要它在字符串中转义就可以使用分隔符。这是我所拥有的:
// Contents of str is exactly '|1|2|\|Three and Four\||5'
str.match(/[^|]/);
// Looking for: ['1', '2', '|Three and Four|', '5']
所以目前我的正则表达式选择了不是| 字符的所有内容,并且我得到了每个项目的数组。但我想要做的是忽略| 字符作为分隔符,如果它首先用\ 转义,但我当然不希望\ 通过。
我知道这将被标记为其他十亿个正则表达式问题的副本,但我尝试在此处将其他解决方案应用于我自己的解决方案,并使用 regex101.com。唉,我的Regex Fu不强。
附:有人知道学习 JS 风格的正则表达式的好资源吗?
【问题讨论】:
-
@charlietfl 该列中的
|被转义(\|),因此是 not 分隔符。考虑变体(转义的分隔符没有与正常的分隔符紧贴在一起):|1|hello\|happy\|world|2->'1', 'hello|happy|world', '2'。 -
var str = '|1|2|\|Three and Four\||5';equals tovar str = '|1|2||Three and Four||5';in js -
@xianshenglu @user2864740 没错,没想说清楚。这是一个数据流,我已将其转换为字符串,以便我可以对其进行操作并访问
|之间的每个项目,但其中一些项目包括不应被视为分隔符的|。 -
RegEx needed to split javascript string on "|" but not "\|" 的可能重复项(在那里,找到了一些东西:D)
-
注意:副本仍然留在(实际上要求这样)\| -- 这可以通过替换 \| 来纠正在拆分后的结果组件中。
标签: javascript regex split escaping