用户可以输入以下内容:
我$ 1 $ 5 $ 10 $ 20 $ 50 $ 100
订购并不重要,我也不担心他们输入的面额是否超过一次(即我$ 1 $ 5 $ 5)。输入的开头以大写字母“ I”开头,后跟一个空格。
到目前为止,我所拥有的是这个,但是我对regex不太熟悉,无法使其与我想要的模式匹配:
^ I \ s(\ $ 1 | \ $ [5] | \ $ 10 | \ $ 20 | \ $ 50 | \ $ [100])$
我想验证输入是否有效。
最佳答案
regex = "^I(?:\s\$(?:10?0?|20|50?))+$"
^I
说以'I'
开头(?:\s\$
说成组,但不捕获空格,后跟'$'
后跟下一个表达式(?:10?0?|20|50?)
表示组,但不捕获1后跟最多2个0,或捕获20或5后跟最多1个0+
说至少一场比赛$
说以前面的结尾关于c# - 匹配美元面额阵列的正则表达式模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19945129/