将正则表达式形成Java字符串
我有一个字符串,其中只有数字和无,一个或多个百分比是允许的 所以我的正则表达式应该是:[\d+%],您可以测试它 对于java,我必须对其进行转换将正则表达式形成Java字符串,java,regex,string,Java,Regex,String,我有一个字符串,其中只有数字和无,一个或多个百分比是允许的 所以我的正则表达式应该是:[\d+%],您可以测试它 对于java,我必须对其进行转换 public static final String regex = "[\\d+\\%]"; 为了测试它,我使用了这个函数 public static final String regex = "[\\d+\\%]"; public boolean validate(String myString){ Pattern pattern
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,11234567
好:12345678,23%,1%53%53%7
我有一个字符串,其中只允许数字,不允许有一个或多个百分比,因此我的正则表达式是:[\d+%]
实际上,它与一个字符相匹配,这个字符可能是数字,a+或a%
要匹配您用文字描述的内容,您需要以下内容:
[\d%]*\d[\d%]*
它与至少包含一个带有可选百分号的数字的字符串相匹配。请注意,%字符不是元字符,因此不需要在正则表达式中转义。它将符合以下所有条件:
0
00
%0
0%0
00%
0%0%0
0%%0
以此类推,但不仅仅是%或任何包含除数字或%字符以外的字符的字符串
有什么好的在线工具可以用来转义java的长正则表达式吗
我不知道有一个。但逃跑并不是你的正则表达式不起作用的原因
一个更高级的问题:如果字符串中至少有一位数字,则只允许%,不允许%
我想我上面的正则表达式就是这样的。作为记录,以下是它作为Java字符串文本的外观:
"[\\d%]*\\d[\\d%]*"
除非正则表达式中有TAB、NL、CR等字符,否则只需将每个\替换为\\就足够了
我有一个字符串,其中只允许数字,不允许有一个或多个百分比,因此我的正则表达式是:[\d+%]
实际上,它与一个字符相匹配,这个字符可能是数字,a+或a%
要匹配您用文字描述的内容,您需要以下内容:
[\d%]*\d[\d%]*
它与至少包含一个带有可选百分号的数字的字符串相匹配。请注意,%字符不是元字符,因此不需要在正则表达式中转义。它将符合以下所有条件:
0
00
%0
0%0
00%
0%0%0
0%%0
以此类推,但不仅仅是%或任何包含除数字或%字符以外的字符的字符串
有什么好的在线工具可以用来转义java的长正则表达式吗
我不知道有一个。但逃跑并不是你的正则表达式不起作用的原因
一个更高级的问题:如果字符串中至少有一位数字,则只允许%,不允许%
我想我上面的正则表达式就是这样的。作为记录,以下是它作为Java字符串文本的外观:
"[\\d%]*\\d[\\d%]*"
除非正则表达式中有TAB、NL、CR等字符,否则只需将每个字符\替换为\。和的作用是什么?删除这些字符并查看其是否有效。[\d%]+表示:一个数字或百分比字符,一次或多次。如果将+放在方括号中,它将被解释为文字+。方括号外+的含义是:前一件事,一次或多次。你能为你的问题添加一些测试用例吗?@halex testcase:GOOD:12345678 23%1%53%35 BAD:23%b23%uu等等1和1234567都是坏的,但12345678是好的?为什么?和是干什么用的?删除这些字符并查看其是否有效。[\d%]+表示:一个数字或百分比字符,一次或多次。如果将+放在方括号中,它将被解释为文字+。方括号外+的含义是:前一件事,一次或多次。你能为你的问题添加一些测试用例吗?@halex testcase:GOOD:12345678 23%1%53%35 BAD:23%b23%uu等等1和1234567都是坏的,但12345678是好的?为什么?斯蒂芬,干得好。。。我真的需要越来越多地学习正则表达式@约尔格-嗯。。。我对正则表达式的看法是它们被高估和过度使用。知道如何使用它们是好的,但是使用它们作为任何解析问题的默认解决方案是不好的,IMO.ok,我从某人那里编辑后发现测试用例并不完全是我想要的。。。我更新了我的测试用例,所以也许你知道如何解决它?Stephen,做得很好。。。我真的需要越来越多地学习正则表达式@约尔格-嗯。。。我对正则表达式的看法是它们被高估和过度使用。知道如何使用它们是好的,但是使用它们作为任何解析问题的默认解决方案是不好的,IMO.ok,我从某人那里编辑后发现测试用例并不完全是我想要的。。。我更新了我的测试用例,所以也许你知道如何解决它?