Java正则表达式:匹配斜杠字符

时间:2014-03-28 07:46:14

标签: java regex

如何在java正则表达式中输入反斜杠(\)?我有一些脚本来匹配所有乳胶标签在某些文件但它没有用。

public class TestMatchTag {

    public static void main(String[] args) {

        String tag = "\begin";

        if (Pattern.matches("\\\\[a-z]+", tag)) {
            System.out.println("MATCH");
        }
    }

}

5 个答案:

答案 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表示单词边界。

Issue with Java Regex \b

如果您有更多以转义字符'\'开头的标记,则应将序列'\' + CHAR替换为'\\' + CHAR

例如,如果您有标记\end,那么代码

tag = tag.replace("\e", "\\e");

等等其他标签。