2012-10-22 51 views
2

一些详细解释使用Java,我可以分割字符串,并给出一些详细的解释制作在Python字符串

String x = "a" + // First 
      "b" + // Second 
     "c"; // Third 

// x = "abc" 

我怎样才能使蟒蛇等价?

我可以拆分字符串,但我无法对此进行评论,就像我对Java所做的一样。

x = "a" \ 
"b" \ 
"c" 

我需要此功能来解释正则表达式的用法。

Pattern p = Pattern.compile("rename_method\\(" + // ignore 'rename_method(' 
         "\"([^\"]*)\"," + // find '"....",' 
+1

要注释的正则表达式,考虑're.VERBOSE'标志:http://docs.python.org/library /re.html#re.VERBOSE –

回答

8

x = ("a" #foo 
     "b" #bar 
    ) 

会工作。

魔术由圆括号完成 - python自动延续任何未终结的制动器(([{)内的行。请注意,当它们彼此相邻时,python也会自动连接字符串(我们甚至不需要+运算符!) - 非常酷。

+0

这实际上很酷。 –

+1

@JoelCornett - 当我第一次发现'+'是不必要的时候,我觉得这很酷(没有双关语:)。我认为这种特殊的功能可以使多行字符串更易于构建。连接在解析/编译为字节码的过程中完成,因此效率更高。你可以争辩说这也是三重引用,但它有点时髦,有时它真的会缩小你的缩进。 – mgilson

4

如果你想专门为正则表达式做,你可以用re.VERBOSE标志很容易地做到这一点。从Python docs(向下滚动了一下,看的说明文件VERBOSE标志):

charref = re.compile(r""" 
&[#]    # Start of a numeric entity reference 
(
    0[0-7]+   # Octal form 
    | [0-9]+   # Decimal form 
    | x[0-9a-fA-F]+ # Hexadecimal form 
) 
;     # Trailing semicolon 
""", re.VERBOSE) 
+0

're.VERBOSE'的文档中重要的位:“当这个标志被指定时,RE字符串中的空格将被忽略,除非空格在字符类中或者前面带有未转义的反斜杠。”我曾经在我详细的正则表达式中使用了字面上的“PO BOX”,并且不知道为什么它不符合我想要的。 –