我想创建一个文本框,强制用户输入" am"或" pm"或者如果他们没有完成并转移到另一个控制台,只是进入了一个" a"或" p"自动完成它。或者也许只要用户输入" a"或" p"它增加了" m"。
我正在考虑使用正则表达式以某种方式匹配条目。我已经有了一个可以检查正则表达式的自定义文本框,但是我不确定如何构造它。
RegularExpression="([AaPp][Mm])"
有人可以帮我解释一下这个表达吗?
答案 0 :(得分:2)
如果要检查整个字符串,则需要确保它与从开始到结束的模式匹配。这就是你需要使用锚点的原因。如果没有锚点,您的模式可能会匹配abcdPMefgh
:
@"\A[AaPp][Mm]\z"
\A
表示字符串的开头
\z
表示字符串的结尾
请注意,捕获括号是无用的,因为您想要的结果是整个匹配。
如果您只需要从较大的字符串中提取子字符串“am”或“pm”,@"\b[AaPp][Mm]\b"
更合适。
另一方面,您可以使用正则表达式选项使模式不区分大小写,只需编写@"\b[ap]m\b"