我尝试使用unicode的基本正则表达式,但我无法使它们在字符串上工作,除了传统的A-Z和数字
我正在查看来自多种语言的示例,而不是A-Z字母家族的一部分
text = "20किटल"
res = re.sub("^[^Wd_]+$", lambda ele: " " + ele[0] + " ", text)
Output:
20किटल
尝试2:
regexp1 = re.compile('^[^Wd_]+$', re.IGNORECASE | re.UNICODE)
regexp1.sub("^[^Wd_]+$", lambda ele: " " + ele[0] + " ", text)
Output:
20किटल
Expected output:
**20 किटल**
使用Pypi正则表达式库
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import regex
text = "20किटल"
pat = regex.compile(r"(?<=d)(?=p{L})", re.UNICODE)
res = pat.sub(" ", text)
print res
其中p{L}
代表任何语言中的任意字母
输出:
20 किटल
如果我正确理解了您的需求,您可以尝试以下操作吗:
# -*- coding: utf-8 -*-
import re
text = '20किटल'
print(re.sub(r'([0-9a-zA-Z_]+)([^s0-9a-zA-Z_]+)', r'1 2', text))
输出:
20 किटल