参加比赛的一部分

时间:2016-10-01 08:54:59

标签: regex

我有以下文字格式:

Phrase:
cat, fish.
Some text.
Phrase:
flat, apple, orange.
Other text.

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

cat, fish, flat, apple, orange

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

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

如何只获得单词?

3 个答案:

答案 0 :(得分:1)

使用JavaScript正则表达式(假设在这里,因为您正在使用regexr),您不能。在大多数正则表达式引擎中,您可以使用正面的lookbehind来模拟:

*

在"短语:"之后,只匹配部分。但是,在JavaScript中你不会有后顾之忧。你能做的最好的就是你已经做过的事情:把你感兴趣的部分放在一个组中,然后提取那个组。

答案 1 :(得分:1)

如果你愿意(或可以使用)使用python,那么字符串的正常分割功能就可以完成这项工作

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.

答案 2 :(得分:1)

会这样做:

/Phrase:\n([^\n]*)\n/g

通过这种方式,你可以在短语之间得到任何东西:\ n(任何东西)\ n

并且组[1]具有任何内容