Regex将标签拆分为单词

2024-05-12 23:26:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图想出一个正则表达式,它将正确地将一个标签拆分成单词。例如:

XP=>;XP
ACar=>;一辆车
好车=>;好车
OnceUponATime=>;曾经
LoveXP=>;Love XP
AppleVsXP=>;苹果Vs XP
詹姆斯邦德007=>;詹姆斯·邦德007

编辑: 我试过了

expanded = ' '.join(re.findall(r"[A-Z][^A-Z]*", self.text))

什么是解决上述所有用例的更健壮的方法?在


Tags: gt苹果编辑标签单词xpvslove
2条回答

你可以简单地用这个表达式来做,这就足够了:

expanded = " ".join([a for a in re.split('([A-Z][a-z]+)', i) if a])

结果如下:

^{pr2}$

希望这对你有帮助。在

你可以定义几个模式来匹配一个单独的单词——一个大写字符后跟一系列小写字符、一系列数字、一系列大写字符而不是小写字符等等——然后在字符串上循环:

import re

pattern = re.compile(r"[A-Z][a-z]+|\d+|[A-Z]+(?![a-z])")

def split_hashtag(tag):
    return pattern.findall(tag)

如果你用你的标签测试它:

^{pr2}$

你可以得到:

XP => XP
ACar => A Car
GoodCar => Good Car
OnceUponATime => Once Upon A Time
LoveXP => Love XP
AppleVsXP => Apple Vs XP
JamesBond007 => James Bond 007

相关问题 更多 >