Skip to main content
 首页 » 编程设计

python之非英文字符、标点符号等特殊字符或单词开头或中间的数字的单词数

2025年05月04日13mfryf

我需要统计非英文字符、标点符号等特殊字符或单词开头或中间的数字。 我试着用 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"щовßß!!!"。