【发布时间】:2015-10-28 12:52:55
【问题描述】:
我正在尝试使用 R 的 gsub("regexp", "", string, perl=T) 删除两个给定子字符串之间的所有字符(包括换行符)(即用空字符串替换所有匹配项)。
到目前为止,我所拥有的是正则表达式(?<=A)(?s:.)+(?=B),其中我使用s 修饰符使. 也匹配换行符。问题是当前瞻B 多次出现时,我只想删除A 和第一个B 之间的任何内容:
我有A remove \r\n this B but leave this B
我想要AB but leave this B
但到目前为止我得到的是AB
如何修改正则表达式以使先行在第一次出现时停止?
【问题讨论】:
-
在 Perl 中,
A\KB(?=C)比(?<=A)B(?=C)快。 PCRE 可能也是如此。