![](/img/trans.png)
[英]What is the Regular Expression for special characters (everything except digits & alphabets) in java
[英]Java Regular Expression - allow only certain characters and digits
我需要编写正则表达式,只允许数字,像&|这样的字符 。 ()和空格。
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
List<String> input = new ArrayList<String>();
input.add("(0.4545 && 0.567) || 456"); // should PASS
input.add("9876-5-4321");
input.add("987-65-4321 (attack)");
input.add("(0.4545 && 0.567) || 456 && (me)");
input.add("0.456 && 0.567"); // should PASS
for (String ssn : input) {
boolean f = ssn.matches("^[\\d\\s()&|.]$");
if (f) {
System.out.println("Found good SSN: " + ssn);
}else {
System.out.println("Nope: " + ssn);
}
}
}
}
以上都没有通过,为什么?
您忘记在字符类后添加+
。 没有它,您的正则表达式将只接受带有字符类中字符的单字符字符串。 试试吧
boolean f = ssn.matches("^[\\d\\s()&|.]+$");
因为正则表达式只接受单个输入(您指定的数字或字符或符号)
使用^[\\\\d\\\\s()&|.]*$
获取多次
'+ 1或更多'
? 0或1
'* 0或更多'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.