如何在java正则表达式中输入反斜杠(\)?我有一些脚本来匹配所有乳胶标签在某些文件但它没有用。
public class TestMatchTag {
public static void main(String[] args) {
String tag = "\begin";
if (Pattern.matches("\\\\[a-z]+", tag)) {
System.out.println("MATCH");
}
}
}
答案 0 :(得分:3)
试试这个,
Pattern.matches("[\\a-z]+", tag)
答案 1 :(得分:2)
将String tag = "\begin";
替换为String tag = "\\begin";
。正则表达式有效,但您的输入字符串需要转义\
字符。
答案 2 :(得分:0)
你需要另一个反斜杠来逃避" \"在" \ begin"中,将其更改为" \ begin",否则为" \ b"在你的" \ begin"将被视为一个角色。
答案 3 :(得分:0)
这应该有用......
Pattern.matches("\\[a-z]+", tag);
[a-z]允许a-z之间的任何一个字符不止一次,而\\允许" \"一次。
您可以在线验证您的表达here
答案 4 :(得分:0)
在代码中插入此代码行:
tag = tag.replace("\b", "\\b");
在java字符串序列中,'\b'
表示退格字符。
正则表达式\b
表示单词边界。
如果您有更多以转义字符'\'
开头的标记,则应将序列'\' + CHAR
替换为'\\' + CHAR
。
例如,如果您有标记\end
,那么代码
tag = tag.replace("\e", "\\e");
等等其他标签。