昨天我询问了如何限制可能性的表达方式:
仅添加%D,%C,%S和字符 -
一切只有一次,因此不允许制作%%或%DD或 - 和类似的。
我得到的答案是:
^(?!.*(.)\\1)%[%SCD-]*$
这是我的问题的答案,但我还需要在字符串中限制%D,%S和%C一次。
任何想法如何将此限制为仅一次?
One time: %D-%D .... <- Not
答案 0 :(得分:0)
我唯一想到的就是用正则表达式来做你所要求的事情就是使用所有可能输入的排列,并用许多正则表达式创建一个大或者语句。如果四个可能的输入只出现一次,则剩下16种可能的排列。
示例:
(ABC)|(ACB)|(CBA)|(CAB)|(BAC)|(BCA)
处理此问题的更通用/实用的方法是利用QValidator
类。
我会将QValidator
子类化为自己的。
http://doc.qt.io/qt-5/qvalidator.html#details
当输入无效或无法正常工作时,我会实时更新附近的另一个标签,删除多余的输入,以便显示输入的内容。
希望有所帮助。
答案 1 :(得分:0)