- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我这样做时:
var m = Regex.Match("aabbccddeeff", "[0-9a-fA-F]{6}");
结果我只得到 aabbcc。实际上(使用 .Matches)有两个匹配项:aabbcc 和 ddeeff。
为什么?这会导致 DataAnnotations.RegularExpressionAttribute 出现问题,因为它需要覆盖整个输入值的单个匹配项。
如何正确编写此代码以获得单个匹配项?
最佳答案
你想在这里实现什么目标?
提供的正则表达式将尝试匹配恰好 6 个字母/数字的序列。由于输入中有 12 个连续的字母数字字符,因此有 2 个连续的匹配项。 Regex.Match
返回第一个,Regex.Matches
两个,完全按照它们应该的方式返回。
如果您想断言整个 文本将精确匹配正则表达式(因为您将它用于输入验证,我假设是这种情况),以便整个 输入字符串应满足Regex.IsMatch
,将表达式更改为:
^[0-9a-fA-F]{6}$
另一方面,如果您不想将匹配限制为恰好 6 个字符,请将其更改为:
[0-9a-fA-F]+
或者,如果您要匹配 12 个字符:
[0-9a-fA-F]{12}
当然,您可能还需要 ^
和 $
,这取决于您的需要。
关于C# Regex 将 aabbccddeeff 匹配为两个 aabbcc 和 ddeeff 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3873509/
如果量词 * 表示“零次或多次”,那么 "aabbcc"[/ab*/] 似乎应该返回 "abb" 但它只返回 "a"。 最佳答案 正则表达式返回的正是您所要求的:第一次出现的 1 a 后跟 0 个或多
我想检查电话号码是否包含此模式 AABBCC其中 A[0-9],B[0-9],C[0,9] 它们应该不同,例如 112233,553322,887766 让我们假设我有一个电话号码 033341122
我正在使用 Gnuplot 从包含 5 个项目的数据中制作散点图: index, name, x value, y value, color (#12e335) 每个条目的颜色都不同。有没有办法让我的
当我这样做时: var m = Regex.Match("aabbccddeeff", "[0-9a-fA-F]{6}"); 结果我只得到 aabbcc。实际上(使用 .Matches)有两个匹配项:
我是一名优秀的程序员,十分优秀!