gpt4 book ai didi

python 正则表达式 - 找到几个可选字符组之一

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:42 25 4
gpt4 key购买 nike

我有以下(离散的)字符串:

um
yum
umpire
µm
mi
micro

这些字符串将按原样找到,而不是作为较长文本的一部分。 (它们是电子表格中可能的单元格值)。

我希望找到所有“um”或“µm”或“mi”或“micro”(但不是 umpire 或 yum)的字符串

我正在努力理解字符分组测试。这是我所拥有的:

[(um)(µm)(mi)]

我也尝试过变体,例如:

^[(?:um)|(?:µm)|(?:mi)]

但还没有发现魔法。

RegEx 101 Demo

如果以下(上方,顶部)字符串返回 True,则期望的结果是:

"um", "µm", "mi", "micro"

最佳答案

您可以将此正则表达式与 anchor 一起使用:

^(?:[uµ]m|mi(?:cro)?)$

Updated RegEx Demo

正则表达式详细信息:

  • ^:开始
  • (?: 启动非捕获组。这是一个非捕获组,因为它执行操作(即返回 bool 值 true/false),但不选择指定的文本
    • [uµ]m:匹配uµ后接m,即匹配um µm
    • |:或者
    • mi(?:cro)?:匹配 mi,或者如果需要的话在末尾加上 cro
  • ):结束非捕获组
  • $:结束

我们使用 ^$( anchor )来确保匹配 if and only if正则表达式是整个字符串:这就是为什么我们有 ?:,因为它的效果包含在 anchor 中。

关于python 正则表达式 - 找到几个可选字符组之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com