我正在尝试验证 Qt 中 LineEdit 小部件的输入。我第一次使用正则表达式,所以我可以使用一些帮助。我想允许用空格分隔 1 到 32 个十六进制字节,例如这应该是有效的:
"0a 45 bc 78 e2 34 71 af"
以下是一些无效输入的示例:
"1 34 bc 4e"
-> 需要成对写,所以 1 必须是 01。
"8a cb3 58 11"
-> cb3 无效。
"56 f2 a8 69 "
-> 不允许有尾随空格。
经过一番挠头后,我想出了这个似乎有效的正则表达式:
"([0-9A-Fa-f]{2}[ ]){0,31}([0-9A-Fa-f]{2})"
现在谈谈我的问题:
您是否发现我的正则表达式有任何我的测试未能显示的问题?如果是这样,我该如何改进它?
有没有更简洁的写法?
提前致谢