我試圖瞭解如何檢查在Python 2.7中,字符串是否只包含字母(來自任何語言)。我曾嘗試這樣的代碼:Python 2.7:正則表達式 - 匹配任何語言的任何字母
# -*- coding: utf-8 -*-
import re
def main():
regexp1 = re.compile('[^\W\d_]+', re.IGNORECASE | re.UNICODE)
regexp2 = re.compile('[\p{L}]+', re.IGNORECASE | re.UNICODE)
print("1", regexp1.search(u"test"))
print("2", regexp1.search(u'äö'))
print("3", regexp1.search(u'...'))
print("4", regexp1.search(u'9a'))
print("5", regexp1.search(u'New/York'))
print("6", regexp2.search(u"test"))
print("7", regexp2.search(u'äö'))
print("8", regexp2.search(u'...'))
print("9", regexp2.search(u'9a'))
print("10", regexp2.search(u'New/York'))
if __name__ == '__main__':
main()
輸出:
('1', <_sre.SRE_Match object at 0x02ACF678>)
('2', <_sre.SRE_Match object at 0x02ACF678>)
('3', None)
('4', <_sre.SRE_Match object at 0x02ACF678>)
('5', <_sre.SRE_Match object at 0x02ACF678>)
('1', None)
('2', None)
('3', None)
('4', None)
('5', None)
我想一個正則表達式,將(從任何語言只能用字母串)只匹配字符串№1和字符串№2。但現在它匹配包含字母的字符串(並且還包含數字和/)。
此外,我試圖使用\p{L}
正則表達式,但它根本不起作用。我試過這個正則表達式:[\p{L}]+
,(\p{L})+
,\p{L}
。
anubhava,我只想指出數字1的字符串和數字2的字符串(它不是程序代碼)。 – Gooman