2012-01-24 35 views
5

Tôi đã đoạn mã sau đó làm việc trong Python 2.7:Python regex chia trường hợp không nhạy cảm trong 2,6

entry_regex = '(' + search_string + ')' 
entry_split = re.split(entry_regex, row, 1, re.IGNORECASE) 

tôi cần phải làm cho nó làm việc trong Python 2.6 cũng như trong Python 2,7 và 2,6 re.split doesn' t chấp nhận một cờ (re.IGNORECASE) như tham số. Bất kỳ giúp đỡ? Cảm ơn

Trả lời

12

Bạn chỉ có thể thêm vào các biểu thức chính quy để làm cho nó phân biệt dạng chữ:

>>> import re 
>>> reg = "(foo)(?i)" 
>>> re.split(reg, "fOO1foo2FOO3") 
['', 'fOO', '1', 'foo', '2', 'FOO', '3'] 
0

Oh, tìm thấy nó bằng bản thân mình, tôi có thể biên dịch nó vào một đối tượng Regex: (? I)

entry_regex = re.compile('(' + search_string + ')', re.IGNORECASE) 
entry_split = entry_regex.split(row, 1) 
2

Tạo re.RegexObject sử dụng re.compile() và sau đó gọi phương thức là split().

Ví dụ:

>>> re.compile('XYZ', re.IGNORECASE).split('fooxyzbar') 
['foo', 'bar'] 
Các vấn đề liên quan