2024-05-12 23:26:54 发布
网友
我正试图想出一个正则表达式,它将正确地将一个标签拆分成单词。例如:
XP=>;XP ACar=>;一辆车 好车=>;好车 OnceUponATime=>;曾经 LoveXP=>;Love XP AppleVsXP=>;苹果Vs XP 詹姆斯邦德007=>;詹姆斯·邦德007
编辑: 我试过了
expanded = ' '.join(re.findall(r"[A-Z][^A-Z]*", self.text))
什么是解决上述所有用例的更健壮的方法?在
你可以简单地用这个表达式来做,这就足够了:
expanded = " ".join([a for a in re.split('([A-Z][a-z]+)', i) if a])
结果如下:
希望这对你有帮助。在
你可以定义几个模式来匹配一个单独的单词——一个大写字符后跟一系列小写字符、一系列数字、一系列大写字符而不是小写字符等等——然后在字符串上循环:
import re pattern = re.compile(r"[A-Z][a-z]+|\d+|[A-Z]+(?![a-z])") def split_hashtag(tag): return pattern.findall(tag)
如果你用你的标签测试它:
你可以得到:
XP => XP ACar => A Car GoodCar => Good Car OnceUponATime => Once Upon A Time LoveXP => Love XP AppleVsXP => Apple Vs XP JamesBond007 => James Bond 007
你可以简单地用这个表达式来做,这就足够了:
结果如下:
^{pr2}$希望这对你有帮助。在
你可以定义几个模式来匹配一个单独的单词——一个大写字符后跟一系列小写字符、一系列数字、一系列大写字符而不是小写字符等等——然后在字符串上循环:
如果你用你的标签测试它:
^{pr2}$你可以得到:
相关问题 更多 >
编程相关推荐