Regex PCRE正则表达式-排除某些情况
Regex接受所有mesages,如下所示:Regex PCRE正则表达式-排除某些情况,regex,pcre,Regex,Pcre,Regex接受所有mesages,如下所示: $regex = /(^)(\[(.*)\]) (.*)$/; [Help] John: ... 问题是聊天室中的消息如下所示: $regex = /(^)(\[(.*)\]) (.*)$/; [Help] John: ... []技术信息:。。。 [>重要>> ] ... [BUFF>> 45] ... /^(?!\[[[]*(?:重要)?[[]*\])(\[(.*)\])(.*))$/ (?!)-为确保 \[\]-方括号内的内容不是
$regex = /(^)(\[(.*)\]) (.*)$/;
[Help] John: ...
问题是聊天室中的消息如下所示:
$regex = /(^)(\[(.*)\]) (.*)$/;
[Help] John: ...
[]技术信息:。。。
[>重要<]。。。
[ >>> ] ...
[BUFF<]。。。
[ >>> 45] ...
/^(?!\[[[]*(?:重要)?[[]*\])(\[(.*)\])(.*))$/
-为确保(?!)
-方括号内的内容不是\[\]
-只是空格的一个可变数字([]*(?:重要)?[]*
),里面有一个可选(*
)单词?
)重要
/^(?!\[[[]*(?:重要)?[]*\])(\[(.*)\])(.*))$/
-为确保(?!)
-方括号内的内容不是\[\]
-只是空格的一个可变数字([]*(?:重要)?[]*
),里面有一个可选(*
)单词?
)重要
- 我建议
/^(?!\[[ <>]*(?:Important)?[ <>]*\])(\[(.*)\]) (.*)$/
^(\[(?![]*(?:重要[]*)?])(.*)(.*)(.*)(.*))$
见
(?![]*(?:Important[]*)?])
如果内部只有空格,或者如果前面或后面有任何空格,
以任何顺序排列,则否定前瞻将使正则表达式匹配失败
请注意,前瞻放在打开的正后方[
,如果放在前面并包含[
,则可减少冗余回溯
图案详情:
-字符串的开头^
-第1组开始,打开(\[
[
-如果符合以下条件,则会导致匹配失败的负面前瞻:(?![]*(?:Important[]*)?)
-0+字符:空格,[]*
-1或0序列(?:重要[]*)?
-文字重要
-0+字符:空格,[]*
-关闭]
]
-组2,匹配除换行符以外的0+个字符(.*)
-第1组结束时,])
匹配结束时的]
]
-第3组,匹配除换行符以外的0+个字符(.*)
-字符串结尾$
- 我建议
/^(?!\[[ <>]*(?:Important)?[ <>]*\])(\[(.*)\]) (.*)$/
^(\[(?![]*(?:重要[]*)?])(.*)(.*)(.*)(.*))$
见
(?![]*(?:Important[]*)?])
如果内部只有空格,或者如果前面或后面有任何空格,
以任何顺序排列,则否定前瞻将使正则表达式匹配失败
请注意,前瞻放在打开的正后方[
,如果放在前面并包含[
,则可减少冗余回溯
图案详情:
-字符串的开头^
-第1组开始,打开(\[
[
-如果符合以下条件,则会导致匹配失败的负面前瞻:(?![]*(?:Important[]*)?)
-0+字符:空格,[]*
-1或0序列(?:重要[]*)?
-文字重要
-0+字符:空格,[]*
-关闭]
]
-组2,匹配除换行符以外的0+个字符(.*)
-第1组结束时,])
匹配结束时的]
]
-第3组,匹配除换行符以外的0+个字符(.*)
-字符串结尾$
[]*
子模式([]*(?:重要)?[]*
)包围的可选组会损失一点性能,而不是线性的[]*(?:Important[]*)?
Um,在“Important”的情况下:空格和“>”,@user64675,ok fixed(假设您的意思是按数字变化而不是按排列)。按数字和排列变化((@user64675,ok,fixed。由相同的[]*
子模式([]*(?:Important)[]*
)包围的可选组)由于更线性的[]*(?:重要[]*)?