C#正则表达式,我可以在字符串上设置MaxValue而不是MaxLength吗?

我正在尝试使UWP中的文本框仅允许以下输入:9位数字,后跟“。”。 (可选),然后使用Regex后跟2位数字(可选)。

到目前为止,我想出了一个允许9位或9位数字和'。'的表达式。

string pattern = @"^(?<Number>([0-9]{0,9})(\.?)([0-9]{0,2}?))";           

我希望它接受123456789123456789.12作为输入。

但是现在它仅接受123456789123456789.

zydx123 回答:C#正则表达式,我可以在字符串上设置MaxValue而不是MaxLength吗?

如果要匹配2个可选数字,可以将组设为(?:[0-9]{2})?,因为[0-9]{0,2}可以匹配0、1或2个数字。

{0,9}的匹配范围为0-9位数。

要匹配整个模式,您应该添加一个锚点$来声明字符串的结尾。

如果不需要捕获组,可以将模式更新为:

^(?<Number>[0-9]{9}\.?(?:[0-9]{2})?)$

Regex demo

本文链接:https://www.f2er.com/3157399.html

大家都在问