用户可以输入以下内容:
我$ 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/

10-17 02:42