我有问题。我有这个正则表达式:
([\w ]*[^'entre']{1}) entre ([\w ]*) y ([\w ]*)
要匹配的一些可能的字符串是:
事情是,正则表达式匹配前3个字符串,但另一个不匹配,我不知道为什么
你能帮助我吗?
提前致谢
修改
字符串是街道和交叉点的名称。所以,我想找到那个表达式,然后用以下形式替换它:
street1 / STREET2-street3
对于第一个示例字符串,替换符如
av cordoba / medrano-gascon
^ ['entre]就在那里,因为街道名称可以包含字符串“entre”,我必须把它作为街道名称
修改
我找到了解决方案。我必须使用*([\w ]*(?<!entre)) entre ([\w ]*) y ([\w ]*)*
谢谢大家
答案 0 :(得分:3)
答案 1 :(得分:0)
我想你可以使用
([\w ]*?) entre ([\w ]*) y ([\w ]*)
请参阅demo
因为我们使用贪心匹配,所以不需要使用更多entre
。
替换为$1/$2-$3
我们得到:
av cordoba/medrano-gascon
esmeralda/av rivadavia-lavalle
av cor1doba entre/rios-suipac2ha
monroe/aizpurra-av de los constituyentes
答案 2 :(得分:-1)
为什么不在没有空格的情况下尝试呢?
([\w ]*[^'entre']{1})entre([\w ]*) y ([\w ]*)