正则表达式匹配未跟随“@”字符的短划线

时间:2016-05-05 12:50:11

标签: php regex

您好我正在尝试使用正则表达式将“/”替换为“/ n:”。我遇到的问题是我希望这种情况发生,除非“/”之后是“@”所以“/@".

我有一个像这样的模式“// [^ @] /”,虽然这会得到“/”,而忽略任何“/ @”,它也匹配下面的字母。我只需要匹配“/”。任何人都可以帮助这个感谢。

编辑:添加了示例字符串

/module/y-version/@value

1 个答案:

答案 0 :(得分:3)

您可以使用negative lookahead

'~/(?!@)~'

请参阅regex demo

[^@]negated character class,是消费模式,而前瞻只会检查字符串中当前位置右侧的文字,并且如果前瞻模式找到匹配,则会使匹配失败。