2016-09-26 40 views
-1

我從保存爲unicode字符串的用戶那裏獲得輸入正則表達式。在將它作爲正則表達式對象進行編譯之前,是否必須將輸入字符串轉換爲原始字符串?還是沒有必要?我是否將它正確地轉換爲原始字符串?如何在python正則表達式中正確使用unicode字符串

import re 
input_regex_as_unicode = u"^(.){1,36}$" 
string_to_check = "342342dedsfs" 

# leave as unicode 
compiled_regex = re.compile(input_regex_as_unicode) 
match_string = re.match(compiled_regex, string_to_check) 

# convert to raw 
compiled_regex = re.compile(r'' + input_regex_as_unicode) 
match_string = re.match(compiled_regex, string_to_check) 

@Ahsanul哈克,我的問題是更多的正則表達式具體的,將其轉換爲正則表達式對象

+1

可能的重複[從Python獲取unicode字符串中的原始字符串](http://stackoverflow.com/questions/14066883/getting-a-raw-string-from-a-unicode-string-in-python ) –

+0

@Ahsanul Haque,我的問題是更具體的正則表達式,無論正則表達式在將其轉換爲正則表達式對象時是否正確處理unicode字符串。 –

回答

1

re模塊可以處理Unicode字符串和普通字符串的情況下正確的正則表達式是否正確處理Unicode字符串,你不需要把它們轉換成任何東西(但是你在使用字符串時應該是一致的)。

沒有像「原始字符串」這樣的事情。你可以在你的代碼中使用原始字符串符號,如果它可以幫助你使用包含反斜槓的字符串。例如,要匹配換行符,您可以使用'\\n',u'\\n'r'\n'ur'\n'

由於r''''計算爲相同的字符串,因此在示例中對原始字符串符號的使用不起作用。

相關問題