Regex для замены китайской пунктуации с английской запятой в Python - PullRequest
2 голосов
/ 05 июля 2019

Для китайских слов: 上海,北京、武汉;重庆。欢迎你!你好, я хочу заменить китайскую пунктуацию с запятой, как я могу сделать это с помощью регулярных выражений в Python?

Ответы [ 2 ]

2 голосов
/ 05 июля 2019

Один способ сделать с re модулем

import re
str='上海,北京、武汉;重庆。欢迎你!你好'
s = re.sub(r'[^\w\s]',',',str)
print(s)

Выход:

上海,北京,武汉,重庆,欢迎你,你好

Объяснение

[^\w\s] - соответствует одному символу Не присутствует в списке ниже-

1. \w matches any word character (equal to [a-zA-Z0-9_])
2. \s matches any whitespace character (equal to [\r\n\t\f\v ])
0 голосов
/ 05 июля 2019

Это мое решение, но остался один восклицательный знак:

strings = "上海,北京、武汉;重庆。欢迎你!你好"    
punc = "[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]"
string = re.sub(punc, ",", strings)
print(string)

Выход:

上海,北京,武汉,重庆,欢迎你!你好
...