Perl正则表达式\ U.

时间:2014-02-11 13:23:56

标签: python regex perl

我正在尝试将一些perl代码转换为python。我遇到过这一行

if($Var=~ /^\U/)
{ dosomething(); }

我看过网络表达,但我无法理解其含义。

\ U大写直到\ E

\ E结束案例修改

如果可能的话,请举例说明正确的用法以及如何使用等效的python。

1 个答案:

答案 0 :(得分:7)

正则表达式引擎对\U一无所知。它由双引号和正则表达式文字中的Perl解析器处理。

"\Uabcdef"       is the same as     uc("abcdef")
"\Uabc\Edef"     is the same as     uc("abc")."def"

这意味着

/^\Uabc/         is the same as     /^ABC/
/^\U/            is the same as     /^/

/^/(因而/^\U/)毫无意义,因为它总是匹配。

如果您想确保字符串完全由大写字母组成,那么如果您对字母的定义非常有限,则可以使用/^\p{Lu}*\z//^[A-Z]*\z/


Perl的

$var =~ /\Uabc\Edef/

将在Python中编写如下:

re.search("abc".upper() + "def", var)