文字列には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