首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参加比赛

参加比赛
EN

Stack Overflow用户
提问于 2016-10-01 08:54:59
回答 3查看 36关注 0票数 1

我有以下文本格式:

代码语言:javascript
复制
Phrase:
cat, fish.
Some text.
Phrase:
flat, apple, orange.
Other text.

我只想提取Phrase:之后的单词,直到下一个新行:

cat, fish, flat, apple, orange

这是我在Regexr.com中尝试的正则表达式

(Phrase:)\n(.*),但它与Phrase和单词都匹配。

怎样才能只得到单词?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-01 09:17:12

这样做会不会:

代码语言:javascript
复制
/Phrase:\n([^\n]*)\n/g

这样你就可以得到短语之间的任何信息:\n(任何事物)\n

group1有任何内容

票数 1
EN

Stack Overflow用户

发布于 2016-10-01 09:02:32

对于JavaScript regexes (这里假设您使用regexr),您不能。在大多数regex引擎中,您可以使用正向后向建模:

代码语言:javascript
复制
(?<=Phrase:\n).*

这将只匹配“短语:”后面的部分。但是,在JavaScript中,您没有查找功能。你能做的最好的事情就是你已经做的事情:把你感兴趣的部分放到一个小组中,然后把它提取出来。

票数 1
EN

Stack Overflow用户

发布于 2016-10-01 09:14:47

如果您愿意(或可以使用)使用python,那么string的普通拆分函数将完成此工作。

代码语言:javascript
复制
In [1]: s
Out[1]: 'Phrase:\ncat, fish.\nSome text.\nPhrase:\nflat, apple, orange.\nOther text.'

In [2]: print s
Phrase:
cat, fish.
Some text.
Phrase:
flat, apple, orange.
Other text.



In [3]: s.split('Phrase:\n')
Out[3]: ['', 'cat, fish.\nSome text.\n', 'flat, apple, orange.\nOther text.']

In [4]: l = s.split('Phrase:\n')

In [5]: print l[0] #Yes it's empty


In [6]: print l[1]
cat, fish.
Some text.


In [7]: print l[2]
flat, apple, orange.
Other text.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39804742

复制
相关文章

相似问题

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