use*_*420 15 python regex tags string
我试图在python中将字符串拆分为"标签"列表.拆分应该处理诸如"HappyBirthday"之类的字符串并删除大多数标点符号但保留连字符和撇号.我的出发点是:
tags = re.findall("([A-Z]{2,}(?=[A-Z]|$)|[A-Z][a-z]*)|\w+-\w+|[\w']+"
我想转换这个示例数据:
Jeff's dog is un-American SomeTimes! BUT NOTAlways
成:
['Jeff's', 'dog', 'is', 'un-American', 'Some', 'Times', 'BUT', 'NOT', 'Always']
PS我很抱歉我的描述不是很好.我不确定如何解释它,并且大多数谷歌都没有成功.我希望这个例子能够恰当地说明它.
编辑:我想我需要更精确,所以,
phy*_*nfo 23
我建议如下:
re.findall("[A-Z]{2,}(?![a-z])|[A-Z][a-z]+(?=[A-Z])|[\'\w\-]+",s)
这样可以得到你的例子:
["Jeff's", 'dog', 'is', 'un-American', 'Some', 'Times', 'BUT', 'NOT', 'Always']
说明:RegExp由3个备选方案组成:
[A-Z]{2,}(?![a-z]) 匹配所有字母大写的单词[A-Z][a-z]+(?=[A-Z])匹配带有第一个captitel字母的单词.前瞻(?=[A-Z])在下一个大写字母之前停止匹配[\'\w\-]+匹配所有其余的,即可能包含'和的单词-.| 归档时间: | 
 | 
| 查看次数: | 14665 次 | 
| 最近记录: |