1

Newbe 在这里,学习了一些基础知识并遇到了这个正则表达式。如果有人可以帮我解构它,那就太好了。先感谢您 !

$source = "ExpandCamelCaseAPIDescriptorPHP5_3_4Version3_21Beta";
preg_replace('/(?<!^)([A-Z][a-z]|(?<=[a-z])[^a-z]|(?<=[A-Z])[0-9_])/', ' $1', $source);
// outputs:Expand Camel Case API Descriptor PHP 5_3_4 Version 3_21 Beta

表达方式

(?<!^)

意思是“前面没有输入的开始”,或者换句话说“除了开始之外的任何地方”。

这是一个负面的看法,它具有以下形式,并且是一个零宽度断言,即前面的输入与regex(?<!regex)不匹配。将 a替换为a后,您会得到正面的看法。从后面看中去掉,你就会向前看。!=<

4

1 回答 1

4

表达方式

(?<!^)

意思是“前面没有输入的开始”,或者换句话说“除了开始之外的任何地方”。

这是一个负面的看法,它具有以下形式,并且是一个零宽度断言,即前面的输入与regex(?<!regex)不匹配。将 a替换为a后,您会得到正面的看法。从后面看中去掉,你就会向前看。!=<

于 2013-10-09T03:27:24.627 回答