2016-06-08 120 views
1

我想提取嵌在文本字符串中括號內的文字部分正則表達式匹配:在朱莉婭

"Dominion Diamond Corporation (DDC) " 

(我想提取DDC)。

細讀interwebs表明正則表達式

"\([^)]*\)" 

將是有用的。

我嘗試以下方法:

ret = Regex(regExp) 
match(ret, "Dominion Diamond Corporation (DDC) ") 

輸出:

RegexMatch("Dominion Diamond Corporation (DDC", 1="Dominion Diamond Corporation (DDC") 

然而,當我進入正則表達式表達到匹配函數直接:

match(r"\([^)]*\)"t, "Dominion Diamond Corporation (DDC) ") 

的輸出是:

RegexMatch("(DDC)") 

爲什麼/這兩個表達式有什麼不同?我如何插入一個任意的正則表達式到匹配的第一個參數?

+1

'r「string」'通常表示原始字符串(即Python)。我懷疑它之前是剝去了反斜槓。儘管如此,我不明白爲什麼最後會出現「t」。 – Laurel

+0

回頭看我的筆記本,我覺得「t」是複製/粘貼錯誤 – pyrex

回答

4

正如@Laurel在評論中所建議的那樣,單個反斜槓並沒有達到match的功能。

julia> rstring = "\\([^)]*\\)" 
"\\([^)]*\\)" 

julia> match(Regex(rstring), "Dominion Diamond Corporation (DDC) ") 
RegexMatch("(DDC)") 
+0

謝謝;大概應該首先想到這一點。 – pyrex

+0

只需添加,在Julia中,'r「...」'表示「用...構造RegEx」,所以爲了方便起見,反斜槓被保留。 –