RegEx用于过滤整个空格和特殊字符

2nbm6dog  于 2023-01-18  发布在  其他
关注(0)|答案(4)|浏览(109)

我需要一个正则表达式来匹配某些特殊字符,如果字符串只有白色没有任何字符。我能够成功地匹配特殊字符,但无法匹配,如果它有完整的空白。
这是我用来查找某些字符的RegEx。[^<>/\\\\:*?\"|]+
但我需要上面的RegEx来匹配,如果字符串只有空格,例如" ",它不应该匹配,即使字符串有一个有效的字符,如" d"
任何帮助都将不胜感激

exdqitrt

exdqitrt1#

您可以使用这个正则表达式来匹配只有空格和特殊字符的字符串:

[^\S\r\n]*
guykilcj

guykilcj2#

如果您可能只需要在JAVA中使用REGEX匹配白色:

Pattern whitespace = Pattern.compile("^\\s+$");

所以

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class regex {

public static void main(String[] args) {

    System.out.println(useRegex("This is a Test ")); // this would print false
    System.out.println(useRegex("  ")); // this would print true

}
 public static boolean useRegex(final String input) {
        // Compile regular expression
        final Pattern pattern = Pattern.compile("^\\s+$", Pattern.CASE_INSENSITIVE);
        // Match regex against input
        final Matcher matcher = pattern.matcher(input);
        // Use results...
        return matcher.matches();
    }
}
dojqjjoe

dojqjjoe3#

仅将正则表达式修改为一个或多个特殊字符或一个或多个空白字符:

^[\^<>\/\\:*?\"|]+|\s+$

您可以在这里测试:https://regex101.com/r/wdCozn/1
对于JAVA的UPDATE,我们也需要转义双引号。

guicsvcw

guicsvcw4#

要在JavaScript中匹配至少包含1个空格字符(不包括换行符)的字符串,可以使用求反字符类:

^[^\S\r\n]+$

参见regex101 demo
在Java中,可以匹配一个或多个水平whitspace字符:

^\\h+$

参见regex101 demo

    • 注意**如果允许空字符串,则量词可以是*,重复0次或更多次。

相关问题