我在Python 3中有这个Python正则表达式代码,我不明白。我很感激任何帮助,通过一些例子来解释它究竟是做什么的。代码是这样的:
# encoding=utf-8
import re
newline = re.sub(r'\s+(((زا(ی)?)?|ام?|ات|اش|ای?(د)?|ایم?|اند?)[\.\!\?\،]*)', r'\1 ', newline)
答案 0 :(得分:3)
这是你的正则表达式:
\s+(((زا(ی)?)?|ام?|ات|اش|ای?(د)?|ایم?|اند?)[\.\!\?\،]*)
这是一个可视化:
您的替换为r'\1 '
,这意味着替换您在第一组中找到的内容后跟空格。我不读波斯语,但这是另一个例子:
\s+((a|b)[./?]*)
所以让我们执行一些代码:
>>> newline = ' a? b? a.'
>>> re.sub('\s+((a|b)[./?]*)', r'\1 ', newline)
'a? b? a. '
这会占用特定字符组(前导\s+
)之前的额外空格,并将其更改为标识的group 1
后跟一个空格(r'\1 '
)。