Kiểm tra xem một chuỗi có bắt đầu bằng XXXX không


427

Tôi muốn biết làm thế nào để kiểm tra xem một chuỗi bắt đầu bằng "xin chào" trong Python.

Trong Bash tôi thường làm:

if [[ "$string" =~ ^hello ]]; then
 do something here
fi

Làm thế nào để tôi đạt được điều tương tự trong Python?

Câu trả lời:



105

RanRag đã trả lời nó cho câu hỏi cụ thể của bạn.

Tuy nhiên, nói chung, những gì bạn đang làm với

if [[ "$string" =~ ^hello ]]

là một trận đấu regex . Để làm tương tự trong Python, bạn sẽ làm:

import re
if re.match(r'^hello', somestring):
    # do stuff

Rõ ràng, trong trường hợp này, somestring.startswith('hello')là tốt hơn.


3
Chỉ muốn thêm rằng với những gì tôi đang làm, re.match và re.sub luôn chậm hơn đáng kể so với bất kỳ phương thức nào khác.
Michał Leon

29

Trong trường hợp bạn muốn ghép nhiều từ với từ ma thuật của mình, bạn có thể chuyển các từ để ghép thành một tuple:

>>> magicWord = 'zzzTest'
>>> magicWord.startswith(('zzz', 'yyy', 'rrr'))
True

Lưu ý : startswithmấtstr or a tuple of str

Xem tài liệu .


21

Cũng có thể được thực hiện theo cách này ..

regex=re.compile('^hello')

## THIS WAY YOU CAN CHECK FOR MULTIPLE STRINGS
## LIKE
## regex=re.compile('^hello|^john|^world')

if re.match(regex, somestring):
    print("Yes")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.