正则表达式捕获具有非固定长度lookbehind的模式 - 拆分字符串

时间:2017-11-25 15:24:11

标签: r regex

我想将字符串拆分为以下

S <- "No. Ok (whatever). If you must. Please try to be careful (shakes head)."

[1] No.
[2] Ok (whatever). If you must. 
[3] Please try to be careful (shakes head).

该模式是每个.之前的第一个(...)

我熟悉(?<=...)(即正向后视),但这似乎不适用于非固定长度模式。我想知道我是否对正面观察是错误的,或者是否有一些正则表达式的魔法来做到这一点。谢谢!

1 个答案:

答案 0 :(得分:2)

请注意,我不太了解ruby,但应该有类似split方法的方法,它使用正则表达式作为分隔符并相应地拆分字符串。

使用此正则表达式:

(?<=\.) (?=[^.]+?\(.+?\))

这会查找空格字符。在空间后面,必须有一个点(?<=\.)。在(?=之后,必须有一堆不是点[^.]+?的字符,然后是\(.+?\)内有一对括号的字符。

在线试用:https://regex101.com/r/8PcbFJ/1