2012-10-22 116 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」,並且不知道爲什麼它不符合我想要的。 –