我想使用正则表达式从字符串中捕获非连续文本,我发现它非常困难。 (无法使其工作)
我有以下内容:
“John KC Mary V oranges。”
KC和V是标签,它们将始终存在于我的字符串中。在这种情况下,我想拍摄“John V oranges”。
所以我想要的是删除KC并翻转直到V(V除外)。
我无法弄清楚如何做到这一点。我在Java代码上这样做,所以我认为我对正则表达式有一些语法限制。
另一个限制是我只需要使用正则表达式。我不能用java替换。
如果你们能给我一些想法,我会真的很好。
谢谢。
答案 0 :(得分:1)
您可以使用以下正则表达式
([a-zA-Z ]+)KC [a-zA-Z]+ (V [a-zA-Z]+)
将返回类似
的数组Array
(
[0] => John KC Mary V oranges.
[1] => John
[2] => V oranges.
)
你可以选择最后2个索引..简单..
答案 1 :(得分:0)
将此正则表达式用于搜索替换:
KC.*?\s(?=V)
这意味着在KC之后接着是V.并考虑在V之前有一个空格。
以上正则表达式是您想要搜索替换的时间。但如果你想使用正则表达式匹配,那么正则表达式将是:
(.*?)\sKC.+(\sV.*)
执行正则表达式匹配后,只需连接返回的匹配的group-1和group-2。