如何找到此特定字符串的多次出现并将它们分成一个列表?

2024-02-27

我试图在更大的整个字符串中找到特定的一段字符串。

这是字符串,粗体字是我想使用 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(使用前将#替换为@)

如何找到此特定字符串的多次出现并将它们分成一个列表? 的相关文章

随机推荐