强制文本框中的文本输入为am / pm

时间:2014-09-25 00:27:34

标签: c# regex wpf

我想创建一个文本框,强制用户输入" am"或" pm"或者如果他们没有完成并转移到另一个控制台,只是进入了一个" a"或" p"自动完成它。或者也许只要用户输入" a"或" p"它增加了" m"。

我正在考虑使用正则表达式以某种方式匹配条目。我已经有了一个可以检查正则表达式的自定义文本框,但是我不确定如何构造它。

RegularExpression="([AaPp][Mm])"

有人可以帮我解释一下这个表达吗?

1 个答案:

答案 0 :(得分:2)

如果要检查整个字符串,则需要确保它与从开始到结束的模式匹配。这就是你需要使用锚点的原因。如果没有锚点,您的模式可能会匹配abcdPMefgh

之类的内容
@"\A[AaPp][Mm]\z"

\A表示字符串的开头

\z表示字符串的结尾

请注意,捕获括号是无用的,因为您想要的结果是整个匹配。

如果您只需要从较大的字符串中提取子字符串“am”或“pm”,@"\b[AaPp][Mm]\b"更合适。

另一方面,您可以使用正则表达式选项使模式不区分大小写,只需编写@"\b[ap]m\b"