我有一个字符串,我想确保每个'_'后跟一个大写字母。 (我需要在一个正则表达式上执行此操作) 我该怎么做? _ [A-Z]如果只找到一个是好的,但是如果我有的话,它仍会匹配:foo_Bar_bad
答案 0 :(得分:3)
用相反的方式做到这一点:
/_[^A-Z]/
如果字符串包含_
后跟除大写字母之外的任何内容,则匹配。如果匹配,则根据您的标准,字符串格式不正确。
perl中的示例:
$ perl -ne 'if (/_[^A-Z]/) { print "** bad\n" } else { print "** good\n"; };'
qsdkjhf
** good # no _ at all
qdf_A
** good # capital after _
qdsf_2
** bad # no capital after _
qsdf__Aqs
** bad # the first _ is followed by another _ => not a capital
_
** bad # end of input after _ is also rejected
答案 1 :(得分:0)
这可能有效:
(([_][A-Z])|[^_])+
它将匹配任何不是“_”的字符,当遇到下划线时,只有后跟大写字母才会匹配。