我有以下文字格式:
Phrase:
cat, fish.
Some text.
Phrase:
flat, apple, orange.
Other text.
我想只提取Phrase:
之后的字词到下一个新行:
cat, fish, flat, apple, orange
这是我在Regexr.com
尝试的正则表达式:
(Phrase:)\n(.*)
但它匹配Phrase
和单词。
如何只获得单词?
答案 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]具有任何内容