2011-07-05 33 views
30

Tôi đang tìm bỏ qua so sánh chuỗi trường hợp trong python. Tôi đã thử với:Cách đối sánh chuỗi con trong chuỗi bỏ qua trường hợp?

if line.find('mandy') >= 0: 

nhưng không thành công cho trường hợp bỏ qua. Tôi cần phải tìm một tập hợp các từ trong một tập tin văn bản nhất định . Tôi đang đọc từng dòng. Word trên một dòng có thể → mandy, Mandy, Mandy vv [Tôi không muốn sử dụng toupper/tolower vv]

Tôi đang tìm tương đương trăn của mã perl dưới

if($line=~/^Mandy Pande:/i) 

Trả lời

52

() Nếu bạn không muốn sử dụng 012., bạn có thể sử dụng regexp:

import re 

if re.search('mandy', 'Mandy Pande', re.IGNORECASE): 
    # is True 
10

có một bài here, hãy thử nhìn vào này

btw bạn đang tìm kiếm phương pháp .lower

string1 = "hi" 
string2 = "HI" 
if string1.lower() == string2.lower(): 
    print "Equals!" 
else: 
    print "Different!" 
+0

Không anh ấy không. "[Tôi không muốn sử dụng toupper/tolower v.v.]" –

+0

tôi biết, tôi đã đọc, nhưng các giải pháp re.match và re.search không kiểm tra các ký tự đặc biệt được sử dụng trong regex như() hoặc [] –

+0

điều gì có() hoặc [] liên quan đến câu hỏi? –

2
import re 
if re.search('(?i)Mandy Pande:', line): 
    ... 
+0

điều này không kiểm tra/đối sánh với các ký tự điều khiển trong regexp như [] hoặc() nếu tôi không sai ... –

1

thấy this

In [14]: re.match("mandy", "MaNdY", re.IGNORECASE) 
Out[14]: <_sre.SRE_Match object at 0x23a08b8> 
3
a = "MandY" 
alow = a.lower() 
if "mandy" in alow: 
    print "true" 

việc xung quanh

0

Hãy thử:

if haystackstr.lower().find(needlestr.lower()) != -1: 
    # True 
Các vấn đề liên quan