正则表达式修改php

时间:2011-06-15 18:53:21

标签: php regex

我有这个正则表达式:/\*([^<|\n|\r]+)/

匹配以*开头并以新行或'&lt;'结尾的字符串中的所有字符,如果它们以**开头,我如何修改此正则表达式以匹配字符串(因此它不匹配如果第二个字符也是*)

3 个答案:

答案 0 :(得分:1)

您需要的是negative lookarounds

/(?<!\*)\*(?!\*)([^<\n\r]+)/

此外,[^<|\n|\r]没有按照您的想法执行。它将匹配任何非<\n\r或文字|字符的内容。除非您想要匹配文字|,否则您不需要字符类中的|

答案 1 :(得分:0)

我认为这应该有效。它被称为“零宽度负向前瞻断言”

/\*(?!\*)([^<|\n|\r]+)/

答案 2 :(得分:-1)

/\*[^\*]([^<|\n|\r]+)/

更改有效地表示“匹配a *但仅当下一个字符不是*”时