我有以下(离散的)字符串:
um
yum
umpire
µm
mi
micro
这些字符串将按原样找到,而不是作为较长文本的一部分。 (它们是电子表格中可能的单元格值)。
我希望找到所有“um”或“µm”或“mi”或“micro”(但不是 umpire 或 yum)的字符串
我正在努力理解字符分组测试。这是我所拥有的:
[(um)(µm)(mi)]
我也尝试过变体,例如:
^[(?:um)|(?:µm)|(?:mi)]
但还没有发现魔法。
如果以下(上方,顶部)字符串返回 True,则期望的结果是:
"um", "µm", "mi", "micro"
请您参考如下方法:
您可以将此正则表达式与 anchor 一起使用:
^(?:[uµ]m|mi(?:cro)?)$
正则表达式详细信息:
^:开始(?:启动非捕获组。这是一个非捕获组,因为它执行操作(即返回 bool 值 true/false),但不选择指定的文本[uµ]m:匹配u或µ后接m,即匹配um和µm|:或者mi(?:cro)?:匹配mi,或者如果需要的话在末尾加上cro。
):结束非捕获组$:结束
我们使用 ^ 和 $( anchor )来确保匹配 if and only if正则表达式是整个字符串:这就是为什么我们有 ?:,因为它的效果包含在 anchor 中。
