我需要统计非英文字符、标点符号等特殊字符或单词开头或中间的数字。 我试着用 re 来做,现在看起来是
begin_searcher = re.compile(r'[0-9]+[\w\-]')
middle_searcher = re.compile(r'[\w\-]+[0-9]+[\w\-]')
both_searcher = re.compile(r'[0-9]+[\w\-]+[0-9]+[\w\-]')
但它完全错误。任何知道 re 更好的人,请帮助。
我需要计算这个:
'asfas1254asffas'
'125safasffa'
'asd!asfg'
'asff#dasf'
'sex!!!!'
'safщовфау'
等等
请您参考如下方法:
既然你提到了“非英语”字符,我建议使用 regex 而不是 stock re,因为后者对 unicode 的支持较弱。除非我误解了这个问题,否则您正在寻找类似的东西:
regex.match(ur'^\p{L}*[\p{P}\p{Nd}]*\p{L}+$', s) #
s 应该是一个 unicode 对象。这匹配 u"123щовßß" 和 u"щов456ßß" 并拒绝 u"щовßß!!!"。
