首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于正则表达式拆分字符串

基于正则表达式拆分字符串
EN

Stack Overflow用户
提问于 2012-11-03 20:41:57
回答 2查看 200.2K关注 0票数 146

用大写字母拆分像"HELLO there HOW are YOU"这样的字符串的最好方法是什么?

所以我最终会得到一个这样的数组:results = ['HELLO there', 'HOW are', 'YOU']

编辑:

我试过了:

代码语言:javascript
复制
p = re.compile("\b[A-Z]{2,}\b")
print p.split(page_text)

不过,它似乎不起作用。

EN

回答 2

Stack Overflow用户

发布于 2012-11-03 20:45:44

你可以使用一个先行:

代码语言:javascript
复制
re.split(r'[ ](?=[A-Z]+\b)', input)

这将在后面跟着一串以单词边界结尾的大写字母字符串的每个空格处拆分。

请注意,方括号仅用于可读性,也可以省略。

如果一个单词的第一个字母是大写就足够了(所以如果你想在Hello前面拆分),那就更容易了:

代码语言:javascript
复制
re.split(r'[ ](?=[A-Z])', input)

现在,每个空格后面跟着任何大写字母都会被拆分。

票数 67
EN

Stack Overflow用户

发布于 2019-06-05 02:29:48

您的问题包含字符串文字"\b[A-Z]{2,}\b",但该\b表示退格,因为没有r修饰符。

试试:r"\b[A-Z]{2,}\b"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13209288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档