首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将单词/数字和符号模式的字符串从右边拆分

问如何将单词/数字和符号模式的字符串从右边拆分
EN

Stack Overflow用户
提问于 2019-03-16 09:24:41
回答 5查看 497关注 0票数 2

我试图拆分一个字符串,它看起来可能如下所示:

代码语言:javascript
复制
A Fool (SEVEN000) (and His Money are S00n) Parted 

Into:A Fool (7000) (and His Money are和S00n) Parted使用Python

)将始终出现在字符串的末尾,并且总是前面有一个单词/数字。我在想,使用[word/number])模式将它从右边分割出来是可行的。

编辑:

按照要求,这里还有几个例子

代码语言:javascript
复制
Right (Out of the) Gate 

预期产出:Right (Out of the) Gate

代码语言:javascript
复制
Right (Out) (of the Gate at 12PM)

预期产出:Right (Out of the Gate at 12PM)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-03-16 09:35:12

您似乎要将字符串从括号中的最后一个空格中拆分。你可以用这个正则表达式,

代码语言:javascript
复制
 (?=[^()]*\))(?=\S*\))

演示

检查一下Python代码,

代码语言:javascript
复制
import re

s = 'A Fool (SEVEN000) (and His Money are S00n) Parted'
arr = re.split(r' (?=[^()]*\))(?=\S*\))', s)
print(arr)

像你想要的指纹,

代码语言:javascript
复制
['A Fool (SEVEN000) (and His Money are', 'S00n) Parted']
票数 2
EN

Stack Overflow用户

发布于 2019-03-16 09:33:58

这里有一个使用re.split的选择,它具有积极的前瞻性。我使用的模式是:

代码语言:javascript
复制
\s+(?=\w+\)(?:\s|$))

此模式表示拆分和使用任意数量的空白,当后面是一个或多个单词字符,后面跟着一个结束括号和空格或输入的末尾。

代码语言:javascript
复制
input = "A Fool (SEVEN000) (and His Money are S00n) Parted"
parts = re.split(r'\s+(?=\w+\)(?:\s|$))', input)
print(parts)

['A Fool (SEVEN000) (and His Money are', 'S00n) Parted']
票数 1
EN

Stack Overflow用户

发布于 2019-03-16 09:32:14

使用以下正则表达式,并在索引处使用子字符串:

代码语言:javascript
复制
\b[A-Za-z0-9]+\) [A-Za-z0-9]+$

(这假设在结束括号后只有一个单词,您需要提供更多的信息,这样我就可以更新答案,如果不是这样的话)

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

https://stackoverflow.com/questions/55195260

复制
相关文章

相似问题

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