python - 查找两个$之间的文本并将它们放入列表中

标签 python regex

我有一个类似于 - 的文本文件 -

$ abc
defghjik
am here
not now
$ you
are not
here but go there
$ ....

我想提取两个 $ 符号之间的文本并将该文本放入列表或字典中。如何在 python 中通过读取文件来做到这一点?

我尝试了正则表达式,但它给了我文本文件的备用值:

f1 = open('some.txt','r')
lines = f1.read()
x = re.findall(r'$(.*?)$', lines, re.DOTALL)

我希望输出如下所示 - ['abc', 'defghjik', '我在这里', '不是现在'] ['你','不在','这里但去那里']

抱歉,我是 python 新手并正在尝试学习,任何帮助表示赞赏!谢谢!

最佳答案

在正则表达式中 $ 是一个具有特殊含义的字符,需要转义以匹配文字字符。另外,为了匹配多个部分,我会使用 lookahead (?=...) 断言,断言与文字 $ 字符匹配。

>>> x = re.findall(r'(?s)\$\s*(.*?)(?=\$)', lines)
>>> [i.splitlines() for i in x]
[['abc', 'defghjik', 'am here', 'not now'], ['you', 'are not', 'here but go there']]

Working Demo

关于python - 查找两个$之间的文本并将它们放入列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27327763/

相关文章:

python - 使用 django 将 Post 数据保存到数据库时卡住了 url

python - 为什么Python使用全局变量而不是方法参数?

javascript - 使用 Express 的路由路径匹配 `/` 和 `/index`

python - 匹配除三个连续双引号之外的所有内容

python - np 数组之间的欧氏距离

python - scikit-learn 中的词汇匹配问题?

python - 当它是日期时按字典中的值排序

python - 搜索文件中单词代码的输出错误

ios - swift中使用正则表达式检查十进制输入

java - 正则表达式 - 捕获他或她但不知道哪个直到运行