正则表达式只有在字符串出现一次并且它'这是最后一次出现



希望这个标题对有意义

我当前的正则表达式是.phone.*.telephoneNumber/?$。我正在尝试匹配json路径,路径看起来像这个

  1. /phone/0/telephoneNumber-应匹配
  2. /phone/0/telephoneNumber/tephoneNumber-不应匹配

使用我当前的正则表达式,这两者都匹配

我需要电话号码前的.*0或更多的任何字符,因为/phone/..之后可能有任何字符,我正试图寻找以telephoneNumber结尾的匹配项,只有在它后面没有另一个/telephoneNumber的情况下

0或更多电话号码前的任意字符。

如果你的意思是字符数可以是0或更多,那么使用这个

/phone/(?:w+/)?telephoneNumber/?$

如果你的意思是它应该是一个大于0的数字,那么使用这个

/phone/d+/telephoneNumber/?$

如果telephoneNumber是一个文本字符串,则可以使用负前瞻来确保它不在phone//telephoneNumber之间。

/phone/0/((?!telephoneNumber).)*telephoneNumber$

匹配/phone/0/telephoneNumber
/phone/0/telephoneNumber/telephoneNumber不匹配

警告这与/phone/0/telephonenumber/telephoneNumber匹配,除非我们使用不区分大小写的选项/i
因此,完整的正则表达式是

//phone/0/((?!telephoneNumber).)*telephoneNumber$/gmi

参见https://regex101.com/r/1WEF3U/1

相关内容

最新更新