首页 > 解决方案 > 正则表达式查找完全匹配

问题描述

我有以下场景:

message: ON
message: "ON"
message: 'ON'
message: "TONC"
message: Los Angeles, ON
message: HOLDS ON FILE

我想在前三个场景中匹配 ON 这个词,而不是其他场景。

我尝试了积极/消极的前瞻/落后无济于事。前任:

\bON\b(?=[\s{0,1}\"{0,1}\'{0,1}]$)

标签: pythonregex

解决方案


我建议修改字符串以消除您不想要的东西,而不是尝试直接匹配。在这里,我只是删除非字母字符并与所需结果进行比较:

#!/usr/bin/env python3
import re

tests = ['message: ON',
'message: "ON"',
'message: \'ON\'',
'message: "TONC"',
'message: Los Angeles, ON',
'message: HOLDS ON FILE']

for test in tests:
  test = re.sub(r'\W+', '', test)
  print(test)
  print(test == "messageON")

推荐阅读