使用 Regex 从字符串中提取子字符串

By simon at 2019-05-16 • 0人收藏 • 19人看过

我有一个需求,我需要从字符串提取子字符串使用正则表达式。

例如,这是我的样本数据:

你好,"How"是"你"你在做什么

从这个示例数据中,我只需要提取出第二次和第四次出现的双引号数据。

我的要求是你在干什么?

我试过下面的正则表达式,但我无法提取根据我的要求。

"(.*?)"
2 个回复 | 最后更新于 2019-05-16
2019-05-16   #1

我们可以使用Re.findall然后把结果分成第一个和第三个匹配

导入字符串'Hello,How'are'you'What'are'you''doing?' 结果 re.findall ('"。 +?"' ,字符串)[1: : 2]打印(结果)

在这里,regex 匹配双引号中包含的任意数量的字符,但是尝试尽可能少地匹配(a不贪婪的匹配) ,否则我们最终只有一个匹配,你怎么样你在做什么.

输出:

["你","做什么?"]

如果要组合它们而不使用引号,可以使用脱衣服和... 一起Str.join:

打印(''。 Join (string.strip ('"') for string in result))

输出:

你在干什么?
2019-05-16   #2

我们可以尝试使用Re.findall提取所有引用的条款。 然后,仅使用结果列表中的条目构建一个字符串:

输入"Hello,How "are "you "What "are "you "doing? ""匹配 re.findall (r'"([ ^"+)"',input)匹配[1: : 2] output"""。 连接(匹配)打印(输出)你在做什么?

登录后方可回帖

Loading...