6

我可以用

var regex = /[$&+,:;=?@#|]/;

if(elem.match(regex)) { // do something 
}

在Javascript中查找字符串中是否有任何特殊字符。

如何在 Java 中使用类似的正则表达式?

我试过了:

str.match("\\="); // return false

例如:

String str = "123=456";

我试图检测 str 中的“=”。

那没有用。我究竟做错了什么?

4

4 回答 4

16

试试这个。

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

于 2012-09-25T15:42:18.403 回答
2

使用String.matches()。阅读 Javadocs 以了解支持的语法。

于 2012-09-25T15:40:43.957 回答
0

采用

String.matches(String regex);
于 2012-09-25T15:40:46.060 回答
-3

这是一些示例代码:

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

假设所有内容都正确导入,这些代码片段将起作用。

于 2012-09-25T15:41:18.067 回答