我是regex
的新人,而且无法找到正则表达式禁止反斜杠的内容。
感谢您的任何建议。
编辑:
我正在使用正则表达式来处理JTextField,以避免用户写入无效的输入。此regex
目前不允许用户编写空格字符。
我用
做这件事String regex = "\\S{1}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
那么我如何更改regex
以禁止反斜杠?
答案 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()
)匹配。