每个笑脸都必须有一个嘴巴,嘴巴上应标有)
或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;
}
}
我尝试过使用此正则表达式进行微笑检查:/^((:|;)(-|~)?|D|//))$/
答案 0 :(得分:0)
您可以通过使用两个反斜杠正确地转义\\)
来修补当前的正则表达式,但是我认为此处的字符类更容易阅读:
String regx = "^[;:][~-]?[D)]$";
请注意,Java regex模式不会像在PHP或Python这样的另一种语言中那样使用定界符,因此我从您的模式中删除了它们。另外,如果您想将上述模式用于某些方法,例如String#matches
,则可以删除^
和$
锚点。