验证TextBox输入,用正则表达式.

tekcai.com 2017-11-01 09:48:03
单位有公寓楼A,B,C,D栋,层数从5-30层,没有13,14,24层,每层有A,B,C,D,E,F,G,H户。
输入A12H代表A栋12层H户, C30F代表C栋30层F户.

为了验证TextBox输入,用正则表达式[abcd]|[ABCD][5-9]|1[012]|1[5-9]|2[0123]|2[5-9]|3[0][a-h]|[A-H]测试,但是不合格。

那位大咖能给一个指教,不胜感激。

string address = this.TextBoxAddr.Text.ToUpper();//正则表达式[abcd]|[ABCD][5-9]|1[012]|1[5-9]|2[0123]|2[5-9]|3[0][a-h]|[A-H]
string RegexStr = @"A|B|C|D[5-9]|1[012]|1[5-9]|2[0123]|2[5-9]|30A|B|C|D|E|F|G|H";
MessageBox.Show(address);
MatchCollection mc = Regex.Matches(address, @"A|B|C|D[5-9]|1[012]|1[5-9]|2[0123]|2[5-9]|30A|B|C|D|E|F|G|H");
foreach (Match item in mc)
{
MessageBox.Show(item.Value);
}
if (Regex.IsMatch(address, @"A|B|C|D[5-9]|1[012]|1[5-9]|2[0123]|2[5-9]|30A|B|C|D|E|F|G|H"))
{
MessageBox.Show(address + "匹配" + RegexStr);
}
else
{
MessageBox.Show(address + "不匹配" + RegexStr);
}
...全文
379 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
四十大盗哈喽 2020-03-06
  • 打赏
  • 举报
回复
引用 9 楼 酷酷的ღ傻逼 的回复:
楼主问你一个问题,我现在有一个winform的文本框,如何在输入完成后再判断是否符合正则表达式的条件?
失去焦点后
酷酷的ღ傻逼 2018-05-05
  • 打赏
  • 举报
回复
楼主问你一个问题,我现在有一个winform的文本框,如何在输入完成后再判断是否符合正则表达式的条件?
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
测试通过, string address = this.TextBoxAddr.Text.ToUpper();//输入转为大写字母 string RegexStr = @"([A-D])([5-9]|(1[01256789])|(2[012356789])|30)[A-H]";//正则表达式 MessageBox.Show(address); MatchCollection mc = Regex.Matches(address, RegexStr); foreach (Match item in mc) { MessageBox.Show(item.Value); } if (Regex.IsMatch(address, RegexStr)) { MessageBox.Show(address + "匹配" + RegexStr); } else { MessageBox.Show(address + "不匹配" + RegexStr); }
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
引用 5 楼 From_TaiWan 的回复:
@"([a-d]|[A-D])([5-9]|(1[01256789])|(2[012356789])|30)[A-H]"
非常感谢,我会测试一下,然后把结果贴出来,让我这样的初学者,因为您的慷慨分享而都受益。
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
我已经安要求结贴了,有两个不知道为什么,无权结贴。抱歉。
秋的红果实 2017-11-02
  • 打赏
  • 举报
回复
@"([a-d]|[A-D])([5-9]|(1[01256789])|(2[012356789])|30)[A-H]"
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
引用 2 楼 lv1204 的回复:
你发的帖子都不结帖,所以没有大神来回复你
我把分全给那些回复有意义的兄弟了,总不能一个帖子的每个人都给分把吧,那不是成大锅饭了。 如果你,回复正确,我会把分给你。 让大家也长学问,不用说一些与学问无关的事情。 不过,你的提醒也是善意的,非常感谢。
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
不能输入B13D C14H A24F这样不吉利的楼层。 不能输入 ABCD栋以外的其他的字母 最后一位不能输入A,B,C,D,E,F,G,H户以外的字母。
清澈的风 2017-11-02
  • 打赏
  • 举报
回复
你发的帖子都不结帖,所以没有大神来回复你
tekcai.com 2017-11-02
  • 打赏
  • 举报
回复
就是第一位只能输入A,B,C,D四个字母中的一个, 第二位起只能输入代表楼层的数字。如 5,6,7,8,9,10,11,12 15,16,17,18,19,20,21,22,23 25,26,27,28,29,30中的1个楼层数字 最后一位只能输入代表户号的字母。如A,B,C,D,E,F,G,H户之一。 如输入A12H代表A栋12层H户, C30F代表C栋30层F户.

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧