2017-10-05 57 views
0

的文本文件中的特定词语是如下: $flower. are red, yellow and purple. $Sun, and moon. are the best. $Monkey, cat. are animals.匹配在一个文本文件中使用正则表达式使用python

我想将美元符号$后的词匹配,直到第一个点,并把再进入列表。

所以名单应该是: ["flower","Sun, and moon","Monkey, cat"]

回答

1

我认为这是你在找什么

import re 
strings = re.findall('(?<=\$)[^.]+(?=.)', text) 

正则表达式的意思是“美元符号,随后之外的其他一个或多个符号期间,然后是一个单一的时期,并不会使美元符号和时期成为比赛的一部分“。 (?< = xyz)和(?= xyz)构造函数分别称为lookbehead和lookahead,它们与前面的和后面的文本相匹配,但不会使其成为匹配的一部分。

编辑对不起,一开始并没有注意到你不需要这段时间和标志。

+0

非常感谢你,我试图用另一个单词使用相同的技巧,但它不起作用,请你帮我纠正一下:我想得到下列单词之间的词:1.&2.对于句子1生活如此美好 每一件事情都可以。 2. –

+0

请记住,每一个东西之间都有一条新的线......我试图让它((?<= 1。)[^。](?<= 2。)),但它是不工作 –

+0

我明白了,(?<= 1。)[^ 2] +(?= 2。)这个工作。 –