我可以用
var regex = /[$&+,:;=?@#|]/;
if(elem.match(regex)) { // do something
}
在Javascript中查找字符串中是否有任何特殊字符。
如何在 Java 中使用类似的正则表达式?
我试过了:
str.match("\\="); // return false
例如:
String str = "123=456";
我试图检测 str 中的“=”。
那没有用。我究竟做错了什么?
试试这个。
Pattern regex = Pattern.compile("[$&+,:;=?@#|]");
Matcher matcher = regex.matcher("123=456");
if (matcher.find()){
// Do something
}
编辑:matches()
检查所有字符串并在字符串find()
的任何部分找到它。
一条链接:http://docs.oracle.com/javase/tutorial/essential/regex/index.html
使用String.matches()。阅读 Javadocs 以了解支持的语法。
采用
String.matches(String regex);
这是一些示例代码:
import java.lang.Scanner;
/*setup everything here, you just need that import*/
Scanner input = new Scanner(System.in);
//ask for input
String str = input.next();
if(str.contains(/*char1*/) || str.contains(/*char2*/) || /*continue the pattern, 1 for every character*/)
{
//event if it contains one
}
else
{
//event if it does not contain any
}
另一种选择:
import java.lang.Scanner;
/*put the program parts here*/
Scanner input = new Scanner(System.in);
String str = input.next();
List<char> chars = Arrays.asList(/*put chars here, seperated with commas*/);
for(int x = 0; x < chars.size();x++)
{
if(str.contains(chars[x]))
{
//event if it contains one
}
else
{
//event if it does not contain one
}
}
//resume program
假设所有内容都正确导入,这些代码片段将起作用。