Pet*_*sen 12
在原始来源的,指出"这种模式应该工作在最现代化的regex实现",明确的Perl.Python的正则表达式实现是现代的,类似于Perl,但缺少[:punct:]字符类.您可以使用以下方法轻松构建它:
>>> import string, re
>>> pat = r'\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^%s\s]|/)))'
>>> pat = pat % re.sub(r'([-\\\]])', r'\\\1', string.punctuation)
Run Code Online (Sandbox Code Playgroud)
该re.sub()呼叫转义字符集内的特定字符的要求.
编辑:使用re.escape()也可以,因为它只是在所有内容前面加上反斜杠.起初这对我来说很粗糙,但对于这种情况肯定会很好.
>>> pat = pat % re.escape(string.punctuation)
Run Code Online (Sandbox Code Playgroud)
我不认为python有这个表达式
[:punct:]
Run Code Online (Sandbox Code Playgroud)
维基百科说的[:punct:]是相同的
[-!\"#$%&\'()*+,./:;<=>?@\\[\\\\]^_`{|}~]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |