我有一个字符串,其中只有数字,没有一个或多个百分比允许形成一个正则表达式Java字符串
所以我正则表达式是:[\d+%]
,你可以测试它here
为java的我要改造它,
public static final String regex = "[\\d+\\%]";
,并对其进行测试我使用这个功能
public static final String regex = "[\\d+\\%]";
public boolean validate(String myString){
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(myString);
if (!matcher.matches()) {
return false;
}else{
return true;
}
}
正则表达式是行不通的,另外,如果我使用
public static final String regex = "[\\d+%]";
是否有逃避的Java长正则表达式的任何好的在线工具?
更高级的问题:
只有在字符串中至少有一位数字的情况下才允许使用%,只允许使用%!和:没有%
数字如果位数正好是8,而不是更少只允许(指:1234567不好,但12345678是好的)
测试用例:
- 坏:
%
,(空字符串),
23b
,-1
,7.5
,%5a
,1
,1234567
- 好:
12345678
,23%
,1%53%53
,%7
什么是'['和']'?删除这些,看看它是否有效。 – rolve
'[\ d%] +'表示:数字或百分号,一次或多次。如果你在方括号中加上+,它会被解释为一个文字“+”。 +(方括号外)的含义是:以前的事情,一次或多次。 – ignis
你可以在你的问题中添加一些测试用例吗? – halex