python 查找两个字符串之间的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 查找两个字符串之间的内容相关的知识,希望对你有一定的参考价值。

>>>
1 tn71cxp
5tn81etfc
9tn71piu
1tn71fana
tn71fanb
#
如何通过 “>>>” 和“ #”取出这两个之间的内容,文件中会有很多“>>>”和“#”,要很最相近的匹配,最好能保存到list中

参考技术A def getlist(filename):
myfile=open(filename)

s=''
start=False
mylist=[]
for line in myfile:
if line.strip()=='>>>':
start=True
elif line.strip()=='#':
mylist.append(s)
s=''
start=False
elif start:
s+=line
return mylist
未经测试,应该是这个意思追问

不是这样的,那两个字符串后面是还有值的,用strip()不适合吧
>>>:asfdasdf
t67yhn9iokm
#:asdfasdfasdf

追答import re
def getlist(filename):
    myfile=open(filename)
    contents=myfile.read()
    mylist= re.findall(r"(?<=>>>).*?(?=#)",contents,re.DOTALL)
    myfile.close()
    return mylist

本回答被提问者采纳
参考技术B 1、将字符串按照“>>>”或“#”分割成小字符串。
2、再将其中的一个分割符替换成空字符。

正则表达式在 Python 中查找两个字符串之间的字符串

【中文标题】正则表达式在 Python 中查找两个字符串之间的字符串【英文标题】:Regex expression to find strings between two strings in Python 【发布时间】:2019-05-19 14:50:57 【问题描述】:

我正在尝试编写一个正则表达式,它返回一个位于其他两个字符串之间的字符串。例如:我想获取字符串以及位于字符串“15/08/2017”和“$610,000”之间的空格

a='172 211 342    15/08/2017  TRANSFER OF LAND   $610,000        CASH & MTGE'

应该返回

"TRANSFER OF LAND"

这是我到目前为止拼凑的表达方式:

re.search(r'15/08/2017(.*?)$610,000', a).group(1)

它不返回任何匹配项。我认为这是因为我们还需要考虑表达式中的空格。有没有办法在忽略空格的两个字符串之间查找字符串?

【问题讨论】:

因为需要转义$ 【参考方案1】:

使用正则表达式Lookbehind &amp; Lookahead

例如:

import re

a='172 211 342 15/08/2017 TRANSFER OF LAND $610,000 CASH & MTGE'
print(re.search(r"(?<=15/08/2017).*?(?=\$610,000)", a).group())

输出:

 TRANSFER OF LAND 

【讨论】:

【参考方案2】:
>>> re.search(r'15/08/2017(.*)\$610,000',a).group(1)
'  TRANSFER OF LAND   '

由于$ 是一个正则表达式元字符(代表逻辑行的结尾),您需要将其转义以用作文字'$'

【讨论】:

【参考方案3】:

可能更容易使用find:

a = '172 211 342 15/08/2017 TRANSFER OF LAND $610,000 CASH & MTGE'
b = '15/08/2017'
c = '$610,000'

a[a.find(b) + len(b):a.find(c)].strip()

'土地转让'

【讨论】:

以上是关于python 查找两个字符串之间的内容的主要内容,如果未能解决你的问题,请参考以下文章

通过Python中的正则表达式优化在两个列表之间查找匹配子字符串

查找两个字符串之间的相似度度量

IntelliJ IDEA 查找两个字符之间任意内容正则表达式

在字符串中的两个值之间查找单词

Python提取两个字符串之间的内容

Python如何实现从txt文件中所有两个特殊字符间的内容进行查找一个指定字符串?