Java “,”的正则表达式&引用;匹配圆括号
每个笑脸都必须有一张微笑的嘴,嘴上应该标有Java “,”的正则表达式&引用;匹配圆括号,java,regex,Java,Regex,每个笑脸都必须有一张微笑的嘴,嘴上应该标有)或D 我尝试使用以下代码执行此操作: import java.util.*; import java.util.regex.Pattern; public class SmileFaces { public static int countSmileys(List<String> arr) { String regx = "/^((:|;)(-|~)?|D|//))$/"; int count=0; ListIterato
)
或D
我尝试使用以下代码执行此操作:
import java.util.*;
import java.util.regex.Pattern;
public class SmileFaces {
public static int countSmileys(List<String> arr) {
String regx = "/^((:|;)(-|~)?|D|//))$/";
int count=0;
ListIterator<String> itr=arr.listIterator();
while(itr.hasNext()){
if(Pattern.matches(regx,itr.next())){
count++;
}
}
return count;
}
}
import java.util.*;
导入java.util.regex.Pattern;
公共类笑脸{
公共静态int countSmileys(列表arr){
字符串regx=“/^(:|)(-124; ~?| D |/)$/”;
整数计数=0;
ListIterator itr=arr.ListIterator();
while(itr.hasNext()){
if(Pattern.matches(regx,itr.next())){
计数++;
}
}
返回计数;
}
}
我尝试了这个正则表达式进行微笑检查:/^((:|)(| ~?| |/)$/
您可以通过使用两个反斜杠正确转义\\)
来修补当前正则表达式,但我认为字符类在这里更容易阅读:
String regx = "^[;:][~-]?[D)]$";
请注意,Java正则表达式模式不像在其他语言(如PHP或Python)中那样使用分隔符,因此我将它们从您的模式中删除。此外,如果您想将上述模式与某些方法一起使用,例如
String#matches
,您可以删除^
和$
锚定。您需要\\)
而不是//)
当我在测试用例中尝试此方法时,它失败了“@test public void test1(){List a=new arrarylist();a.add(“:”));a.add(“:D”);a.add(“:-”);a、 加上(“:-()”;assertEquals(2,SmileFaces.countSmileys(a));}'