您好,我在使用正则表达式从文本中提取特定单词时遇到问题。线路:
limk ab1
limk ab2 helo
rest helo
ab3 limk helo
ab4 limk
我需要 3 个字母的单词作为输出,仅当limk
它在我要查找的单词之前或之后,并且如果limk
在之前它应该在行首,如果它之后 - 应该在行尾。在这一行应该只是我正在寻找的 limk 和 value。
预期输出:
ab1
ab4
我的正则表达式:
r'(^[0-9a-zA-Z]{3} \blimk\b)|(\blimk\b [0-9a-zA-Z]{3}$)'
有人可以解释我应该如何纠正它?谢谢
^([0-9a-zA-Z]{3})\s+limk$|^limk\s+([0-9a-zA-Z]{3})$
代码:
import re
s = """limk ab1
limk ab2 helo
rest helo
ab3 limk helo
ab4 limk"""
matches = [x[0] if x[0] != '' else x[1] for x in re.findall(r'(?m)^([0-9a-zA-Z]{3})\s+limk$|^limk\s+([0-9a-zA-Z]{3})$', s)]
for match in matches:
print(match)
印刷:
ab1
ab4
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句