你好,我有问题从文本中提取特定的词使用正则表达式。 线路:
limk ab1
limk ab2 helo
rest helo
ab3 limk helo
ab4 limk
只有当limk
在我要查找的单词之前或之后,并且如果limk
在它之前,它应该在行的开头,如果它的后-应该在行的结尾,我才需要3个字母的单词作为输出。在这一行应该只有limk和价值,我正在寻找。你知道吗
预期产量:
ab1
ab4
我的正则表达式:
r'(^[0-9a-zA-Z]{3} \blimk\b)|(\blimk\b [0-9a-zA-Z]{3}$)'
有人能解释我该怎么改正吗? 谢谢
代码:
印刷品:
See Demo
你可以用
参见regex demo。你知道吗
细节
(?m)
-使锚点在换行符处匹配^
-行首(?:
-容器化非捕获组的开始(将锚定应用于所有备选方案):limk
-limk
在行尾\s+
-1+空格([0-9a-zA-Z]{3})
-捕获组1:三个alnum字符|
-或([0-9a-zA-Z]{3})
-捕获组2:三个alnum字符\s+
-1+空格limk
-一个limk
字)
-分组结束$
-字符串结尾。你知道吗Python code:
这是否符合您的要求:
^(\w{3}) limk$|^limk (\w{3})$
https://regex101.com/r/S1OMmi/2
相关问题 更多 >
编程相关推荐