我试图在更大的整个字符串中找到特定的一段字符串。
这是字符串,粗体字是我想使用 python re 库中的 re.findall 函数提取的字符串。
文本|p1_1_SNtestfilefri01|天线系统|@|文本|p1_2_SNtestfilefri01|阿尔卡特朗讯|@|文本|p1_3_SNtestfilefri01|中波天线|@|文本|p1_4_SNtestfilefri01|直径 0.6 M 13 GHZ 单偏光|@|文本|p1_5_SNtestfilefri01|L1AF10018AAAA|@|文本|p1_6_SNtestfilefri01|SNtestfilefri01
这是我的代码:
open_file = open(filepath, mode='r')
doc = open_file.read()
datas = re.findall('\|(.*)\|\@\|', doc)
print(datas)
这是输出:
['p1_1_SNtestfilefri01|天线
系统|@|文本|p1_2_SNtestfilefri01|阿尔卡特朗讯|@|文本|p1_3_SNtestfilefri01|MW
天线|@|文本|p1_4_SNtestfilefri01|直径 0.6 M 13 GHZ 单
偏振|@|文本|p1_5_SNtestfilefri01|L1AF10018AAAA']
什么是正确的模式,以便我可以实现这样的目标? :
['天线系统'、'阿尔卡特朗讯'、'MW 天线'、'DIA 0.6 M 13 GHZ 单极化'、'L1AF10018AAAA'、'SNtestfilefri01']
另外,我上面提到的字符串不包含任何换行符(所有内容都在一行中)
re.findall('[^|]+(?=\|\@\|)', doc)
解释:
-
[^|]+
查找不包含分隔符的文本块
-
(?=...)
是一个“前瞻断言”(匹配文本但不包含在结果中)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)