有没有办法链接多个正则表达式以匹配字符串?以下不是一个很好的例子,但它应该解释我在说什么:
a big dog with name Jake runs in the park
如果要查找狗的名字,可以执行以下操作:
dog.*runs
,这将为您提供dog with name Jake runs
。
然后将其链接到(?:name).*(?:runs)
,它将为您提供名称。
很显然,有一个更简单的方法可以从上面的示例中获取名称,但是这里的要点是为什么正则表达式不支持像这样的链接?类似于管道化Linux命令...
我正在寻找的东西将首先匹配较大的字符串,如果成功将结果与另一个正则表达式匹配以得到较小的子字符串,并且如果成功将结果与另一个正则表达式匹配,依此类推。
更新以提供有关为什么可能无法选择环视的信息
至少在Java中,周围环境有局限性。例如,在后面不可以有变长字符串(不支持。*)。但是问题是一个更通用的问题。如果正则表达式支持
之类的东西就不好了"a big dog with name Jake runs in the park".replaceAll("(dog.*runs)->(?:name).*(?:runs)", "Pluto");
({->
是我的自定义,不存在,请签署以传送结果)