Php 正则表达式:替换单词,除非后面跟破折号

Php 正则表达式:替换单词,除非后面跟破折号,php,regex,preg-replace,Php,Regex,Preg Replace,如何将给定字符串中的“cat”替换为“FELIX”,但如果后跟“-或uu或:”等特殊字符,则不能替换: 例如: “我的猫一直饿着”=>“我的菲利克斯一直饿着” “cat-1547和cat:154产品现在可争议” =>“cat-1547和cat:154产品现在可争议” 谢谢在使用单词边界的同时使用否定前瞻: /\bcat\b(?![-:])/ 见 图案说明: \b-前导词边界(避免在tomcat中匹配cat) cat-文本字符串cat \b-尾随字边界(即,下一个字符必须是非字母、非数字和非下

如何将给定字符串中的“cat”替换为“FELIX”,但如果后跟“-或uu或:”等特殊字符,则不能替换:

例如:

“我的猫一直饿着”=>“我的菲利克斯一直饿着”

“cat-1547和cat:154产品现在可争议” =>“cat-1547和cat:154产品现在可争议”


谢谢

在使用单词边界的同时使用否定前瞻:

/\bcat\b(?![-:])/

图案说明

  • \b
    -前导词边界(避免在
    tomcat
    中匹配
    cat
  • cat
    -文本字符串
    cat
  • \b
    -尾随字边界(即,下一个字符必须是非字母、非数字和非下划线字符,并且它阻止在
    猫步中匹配
    cat
  • (?![-:])
    -如果
    -
    紧跟在
    cat之后,则会导致匹配失败的负面前瞻
:


与单词边界一起使用负前瞻:

/\bcat\b(?![-:])/

图案说明

  • \b
    -前导词边界(避免在
    tomcat
    中匹配
    cat
  • cat
    -文本字符串
    cat
  • \b
    -尾随字边界(即,下一个字符必须是非字母、非数字和非下划线字符,并且它阻止在
    猫步中匹配
    cat
  • (?![-:])
    -如果
    -
    紧跟在
    cat之后,则会导致匹配失败的负面前瞻
:

在python中,您可以:

(cat)(?![-:])
?!检查表达式后面是否跟有后面的内容

在python中,您可以:

(cat)(?![-:])

?!检查表达式后面是否跟有后面的内容

谢谢wiktor,也谢谢demo,很高兴它为你工作。请考虑接受答案(见)。谢谢Wikor的工作,也感谢DeMoFLAAD为您工作。请考虑接受答案(见)。