如何创建一个正则表达式来拆分行,除非有斜杠

How do I create a regular expression to split lines, except if there is a slash?

本文关键字:拆分 正则表达式 创建 何创建 一个      更新时间:2023-09-26

我正在使用"mystring".split("''n")将字符串拆分为一个行数组,效果很好。

但是,现在我需要添加对延续字符"''"的支持。

我想更改我的拆分,以便它将字符串拆分为'''n'上的行,除非如果前有一个"''"字符

因此,例如"THIS''nIS''nEST"将分为"THIS"、"IS"、"A''nEST"

起初,我想用占位符替换/''n实例的所有实例,然后在末尾将它们改回。但这是太多的处理。字符串可能很长,并且可能会占用很多行。

这被称为负向后看。例如,这与前面没有a的b相匹配:(?<!a)b

所以,你需要的是(?<!'')'n

更新JavaScript不支持负向后看。不幸的是,没有一个最好的策略来处理它。下面是一个很好的博客,列出了所有可能的方法:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript

我个人会在"''n"上进行拆分,即完全避免regexp,然后将数组中末尾有"''"的字符串连接起来。对于这种特殊情况,如果延续是例外而不是规则,它将提供最佳性能。