Perl正则表达式中“(?!...)”做了什么?

时间:2016-07-27 01:17:09

标签: regex perl

 $str = "doctor_who:eeh1234LMNOP51234.123";

我想匹配doctor_who:ee而不是doctor_who:eeh;

 $str =~ m/doctor_who:e(?!eh)[epx];

我想知道正则表达式在括号内的作用;

1 个答案:

答案 0 :(得分:3)

如果目标字符串中的以下字符与所附的正则表达式模式匹配,则(?! ... )之类的组件将无法匹配。它被称为负面预测

目前还不清楚您是否需要帮助来形成符合您要求的模式,或者您是否遇到了一种您不理解的模式

如果我正在编写它,我会查看您的规范

  

我想匹配'doctor_who:ee'而不是'doctor_who:eeh'

您希望匹配doctor_who:ee后面没有的h,即

/doctor_who:ee(?!h)/