我试过写一个正则表达式,只允许这个值: +或 - 首先是char然后是2位数,然后是逗号(,),然后是2位数。 这是我的正则表达式:
^(+/-)[0-9]{2}[,][0-9]{2}
也许有人可以帮我修复我的正则表达式或告诉我什么是假的。
由于
此致
答案 0 :(得分:4)
$pattern = "/^[+-][0-9]{2},[0-9]{2}$/";
preg_match($pattern, "-99,99"); // returns 1
preg_match($pattern, "-99,99test"); // returns 0
preg_match($pattern, "+10,20"); // returns 1
preg_match($pattern, "99,99"); // returns 0
preg_match($pattern, "+00,99"); // returns 1
preg_match($pattern, "-9999"); // returns 0
答案 1 :(得分:1)
正则表达式的问题在于如何引用加号或减号,以及您没有定义字符串的结尾。你应该使用这样的东西:
^[+-][0-9]{2},[0-9]{2}$
请注意,不同之处在于我将这两个字符放在方括号内。这将创建一个只包含一个字符或另一个字符的字符类。我还在末尾添加了$
字符来表示字符串的结尾。
您使用的是普通括号 - 这是一个捕获组,以便提取匹配的文本。如果我理解你的问题,你不是要提取任何文本 - 只是为了符合某个条件。
我还从逗号符号中删除了方括号 - 我们只需要匹配那一个字符,这样你就可以放一个文字逗号字符。
答案 2 :(得分:1)
试试这个表达
preg_match("/^(\+|-)[0-9]{2}[,][0-9]{2}$/","+99,09");