我正在尝试使用 re.findall() 查找所有出现的工作日名称。当我排除 \b
时它起作用,但当我将它们包括在内时则不然。这有效:
any_week_day_long = "([Mm]onday|[Tt]uesday|[Ww]ednesday|[Tt]hursday|[Ff]riday|[Ss]aturday|[Ss]unday)"
match = re.findall(any_week_day_long, "Monday is a great day of the week. Tuesday is pretty good, but Wednesday has it beat.")
但这并不:
any_week_day_long = "\b([Mm]onday|[Tt]uesday|[Ww]ednesday|[Tt]hursday|[Ff]riday|[Ss]aturday|[Ss]unday)\b"
match = re.findall(any_week_day_long, "Monday is a great day of the week. Tuesday is pretty good, but Wednesday has it beat.")
在我看来,周一、周二和周三的 \b
应该没问题。 ,但是当我 print
匹配,它只是一个空列表。
最佳答案
不要使用 \b
尝试:\\b
any_week_day_long = "\\b([Mm]onday|[Tt]uesday|[Ww]ednesday|[Tt]hursday|[Ff]riday|[Ss]aturday|[Ss]unday)\\b"
match = re.findall(any_week_day_long, "Monday is a great day of the week. Tuesday is pretty good, but Wednesday has it beat.")
输出
['Monday', 'Tuesday', 'Wednesday']
关于regex -\b 与 Regex/Python 的行为不符预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509732/