如何在java中禁止使用正则表达式反斜杠?

时间:2014-04-29 12:54:28

标签: java regex

我是regex的新人,而且无法找到正则表达式禁止反斜杠的内容。

感谢您的任何建议。

编辑:

我正在使用正则表达式来处理JTextField,以避免用户写入无效的输入。此regex目前不允许用户编写空格字符。

我用

做这件事
String regex = "\\S{1}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);

那么我如何更改regex以禁止反斜杠?

3 个答案:

答案 0 :(得分:0)

java的正则表达式模式是\\\\

String somestring;
somestring = somestring.replaceAll("\\\\", "");

会删除它们。在语义上,它在正则表达式级别下等同于\\,这将成为文字\匹配。

如果您只想进行比较,也可以使用Pattern匹配,或者只使用String#contains

String somestring;
if (somestring.contains("\\")) {...}

答案 1 :(得分:0)

如果字符串有反斜杠,则测试

if (input.matches(".*\\\\.*"))

从字符串中删除反斜杠:

input = input.replace("\\", "");

请注意使用基于非正则表达式的replace()方法。

答案 2 :(得分:0)

根据您的示例代码段,以下表达式应该类似,但也禁止使用反斜杠:

String regex = "[^\\s\\\\]{1}";

你正在寻找一个单字符非空格和非反斜杠模式有点奇怪,但我猜你正在迭代并检查连续匹配。

我会使用以下正则表达式:

String regex = "[^\\s\\\\]+";

并检查它是否与整个字符串(matcher.matches())匹配。