C# Regex在应用程序中不起作用,但在网站上起作用

C# Regex在应用程序中不起作用,但在网站上起作用,c#,C#,我使用regex验证用户输入的值是否有效 string value = "500,21"; bool is_valid = Regex.IsMatch(value, "/^[0-9]+([,.][0-9]{2,2})?$/"); 这段代码应该接受如下值: 500.21 500,21 但它给出了一个错误,即它不是一个有效值 但是,当使用诸如或my regex之类的网站时,正如您在此处所看到的那样,C#不喜欢表达式开头和结尾的/。正则表达式引擎可以有不同的格式和特殊字符,所以要小心 正斜杠是Ja

我使用regex验证用户输入的值是否有效

string value = "500,21";
bool is_valid = Regex.IsMatch(value, "/^[0-9]+([,.][0-9]{2,2})?$/");
这段代码应该接受如下值:

500.21
500,21
但它给出了一个错误,即它不是一个有效值


但是,当使用诸如或my regex之类的网站时,正如您在此处所看到的那样,C#不喜欢表达式开头和结尾的/。正则表达式引擎可以有不同的格式和特殊字符,所以要小心

正斜杠是JavaScript表示正则表达式边界的方式,与双引号表示字符串边界的方式大致相同。例如,JavaScript中的以下两个表达式是等效的:

/^[0-9]+([,.][0-9]{2,2})?$/.test("500,21")

new RegExp("^[0-9]+([,.][0-9]{2,2})?$").test("500,21")
在线正则表达式测试人员通常会为您添加这些正斜杠,因为他们是在JavaScript上下文中思考的。但它们实际上并不是正则表达式本身的一部分

在C#中,您将正则表达式作为字符串传递,因此这些斜杠不是必需的

string value = "500,21";
bool is_valid = Regex.IsMatch(value, "^[0-9]+([,.][0-9]{2,2})?$");

在网站上测试正则表达式时,请删除这些
/
s,确保它们支持.Net使用的引擎。并非所有的正则表达式引擎都是相同的。@L.B谢谢,工作正常。