我应该匹配两个大于0的数字,与空格分开
^\d+?\s\d+?$
我试过了,但显然不起作用 那么我也应该匹配一个以#开头并以#结尾的字符串,里面应该有一个固定数量的char,可以是由变量w-2确定的任何char。
String regex = "#.{" + (w - 2) + "}$";
return Pattern.matches(regex, stringToMatch );
尝试了但不起作用。
答案 0 :(得分:0)
最有效的方式(我知道;)匹配非零数字,同时断言它是有效数字并允许前导零,是
\d*[1-9]\d*
这可以确保所有测试的字符都是数字,并且其中至少有一个不是零。
所以你的第一个宣言应该是
String regex = "^\\d*[1-9]\\d*\\s\\d*[1-9]\\d*$";
(你可以用环顾四周来做类似的事情,但效果不太好 - 特别是对于更长的数字。)
至于你问题的第二部分,如评论中所述,你已经忘记了结尾#
。如果允许在其他文本之前和之后:
String regex = "#.{" + (w - 2) + "}#";
如果它应该是唯一的文字:
String regex = "^#.{" + (w - 2) + "}#$";
希望这有帮助。
此致