我试图了解如何检查在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