从这样的字符串: “笑的眼睛照片在劳顿,好”,我想提取 “笑的眼睛照片”。我写了下面的代码。
PREPOSITIONS = ["at","in"]
matches = re.search(r"^([\w&,.\'\s]+)" + r"(\b{}\b)".
format('|'.join(PREPOSITIONS)), title, re.I)
if matches:
return matches.group(1).strip().title()
适用于上述情况。但是对于以下示例,它失败了。 '山星沙龙服务'。这里没有介词“in”,但是尽管给出了一个单词boundary / b,它仍然会在“Mountain”中出现“in”。 我怎样才能做到这一点?
答案 0 :(得分:3)
您的字符串加入会产生类似(\bat|in\b)
的内容。这意味着\bat
或in\b
---也就是说,单词边界仅应用于第一个备用的开头和最后一个的结尾,而不是每个应用。
请尝试r"\b({})\b"
。