我尝试了解如何在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}
。