regex -\b 与 Regex/Python 的行为不符预期

标签 regex python-3.x

我正在尝试使用 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/

相关文章:

python-3.x - 当用户更改下拉过滤器中的值时,Django 过滤器更新查询

python-3.x - FastAPI - 无法从中间件访问路径参数

python - 如何修复加载 MNIST 数据集时出现的 'No such file or directory' 错误

Perl-从输入字符串中获取第一个 "word"

python - 我已经附上了我的代码。请查看并告诉我错误的原因。解释一下?

java - 如何使用正则表达式删除文件中的重复单词(单词不连续)?

javascript - 使用 JS 正则表达式匹配字符串中的方括号文字时出错

python - 使用类作为其方法中参数的类型提示

regex - 更改grep命令的分隔符

java - 从 Java 中的字符串中删除前导尾随非数字字符