在下面的句子中:
我在下午5点醒来。今天
我想匹配 5 p.m。。 这种模式有效:
5 p\.m\.
但我希望它只匹配整个单词(因此5 p.m.us将不匹配)。 所以我使用了这种模式:
\b5 p\.m\.\b
但由于这个点,这不起作用。
解决这个问题最简单的正则表达式是什么?我可以定义一个零宽度匹配(\ b样式),它不关心字符是否是单词字符,只要它是空格或字符串的结尾\开头?
答案 0 :(得分:5)
你可以使用正向前瞻和后观,这是零宽度匹配。像(?<=^|\s)5 p\.m\.(?=\s|$)
这样的正则表达式意味着“字符串的开头或空格字符,然后是'下午5点'。后跟任何空格字符或字符串结尾。“
答案 1 :(得分:4)