我想在PHP中匹配字符串中最后一个大写字符(http://php.net/manual/en/function.ucfirst.php)。
为了增加复杂性,我想忽略不同字符串后面的所有内容,例如,未大写或驼峰大小写风格的大写字母序列。
下面是一些应该和不应该匹配的例子
匹配:
Foobar => Expected char: F
fooBar => Expected char: B
A_fooBar => Expected char: B
fooBAR => Expected char: B (Most complicated situation)
不匹配:
foo A_bar
foobar
foo bar foo bar
foobar /* Comment */
到目前为止,我已经尝试了以下regex:
(?!A_)[A-Z](?!((?!/'*).)*'*/)
但运气不好。Regexp匹配任何大写字符,除了一个特定的字符串(非常类似的情况)
@edit
和另一个正则表达式
/([A-Z])[^A-Z'W]*$/
http://phpfiddle.org/main/code/dyq-3h7 我相信这将匹配适当的地方,并且也将忽略您的其他示例。
^'w*?(?<![A-Z_])([A-Z])(?!_)
看这个
如果我理解对了,你基本上想要最后一个大写字母,前面没有另一个大写字母。在这种情况下,试试这个:
/.*(?<![A-Z])([A-Z])/
try this
/([A-Z])([A-Za-z]|[^_'*'/])*$/
这适用于你的每个例子:
http://phpfiddle.org/main/code/sgb-7m