当前位置: 首页 > 面试题库 >

正则表达式以匹配JAVA中的两个斜杠

竺捷
2023-03-14
问题内容

我想在特定字符串中匹配正斜杠/或反斜杠\,例如:
1. Hi/Hello/Bye/
2. Hi\Hello\Bye\
3. Hi\Hello/Bye\
4. HiHelloBye
在给定的字符串中,不应匹配最后一个记录,因为它不包含/\

我在用什么

if (strFile.matches(".*//.*"))
{
    //String Matches.
}
else
{
    //Does not match.
}

/仅适用于正斜杠。我不知道如何为两个斜杠写正则表达式(OR条件)。


问题答案:

您要匹配的“字符”为:

"[/\\\\]"

先为字符串复制反斜杠,然后再为正则表达式复制。

当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可能是最讨厌的正则表达式。

Java编译器会"\\\\"在源代码中看到该字符串,并实际上将其转换为字符串"\\"(因为它\用作转义字符)。

然后,正则表达式将看到该正则表达式,"\\"并且由于它也\用作转义字符,因此会将其视为单个\字符。

作为柳岩在评论中指出,你可以摆脱 一个 使用以下的一个反斜杠的水平(正则表达式之一):

".*[/\\x5c].*"
".*[/\\u005c].*"

这可能会使它更具可读性。

完成所有简化操作后,您就指定了由两个斜杠组成的字符类,并且如果所讨论的字符与两个斜杠中的任何一个均匹配,则返回true。

以下代码显示了这一点:

public class testprog {
    public static void checkString (String s) {
        boolean yes = s.matches(".*[/\\\\].*");
        System.out.println ("'" + s + "': " + yes);
    }

    public static void main (String s[]) {
        checkString ("Hi/Hello/Bye/");
        checkString ("Hi\\Hello\\Bye\\");
        checkString ("Hi\\Hello/Bye\\");
        checkString ("HiHelloBye");
    }
}

它输出:

    '嗨/你好/再见/':是
    'Hi \ Hello \ Bye \':是
    'Hi \ Hello / Bye \':是
    'HiHelloBye':否


 类似资料:
  • 问题内容: 我没有JavaScript方面的丰富经验,但是我正在尝试创建一个标记系统,而不是使用or ,而是使用。 我该如何使用而不是。我尝试做并添加,但是失败了。 问题答案: 您可以这样逃避它。 或只使用indexOf

  • 问题内容: 在使用正则表达式时,我使用RegexBuddy。我从其库中复制了正则表达式以匹配URL。我在RegexBuddy中成功测试。但是,当我将其复制为Java 样式并将其粘贴到Java代码中时,它将无法正常工作。以下类打印: 有人知道我在做什么错吗? 问题答案: 请尝试以下正则表达式字符串。你的测试可能以区分大小写的方式进行。我添加了小写字母Alpha以及正确的字符串开头占位符。 这也适用:

  • 问题内容: 如何编写一个正则表达式来匹配它(反斜杠然后是引号)?假设我有一个像这样的字符串: 我需要将所有替换为,因此结果如下所示: 这是行不通的:因为它只匹配引号。不确定如何使用反斜杠。我本可以先删除反斜杠,但字符串中还有其他反斜杠。 问题答案: 如果你 不需要任何像预定义的字符类\ d,量词等正则表达式的机制 ,而不是其预期正则表达式使用其预计文字 两种方法都将替换 所有 出现的目标,但是将按

  • 问题内容: 当字符串以数字开头时,我需要匹配,然后是一个点,然后是一个空格和1个或多个大写字符。匹配必须发生在字符串的开头。我有以下字符串。 我尝试过的正则表达式是: 它不匹配。一个有效的正则表达式将对这个问题有什么作用? 问题答案: (对不起,我先前的错误。大脑现在坚定地投入了。嗯,也许。) 这有效: 分解: =字符串开头 =一个或多个数字 (之所以转义,是因为它在字符串中,因此) =文字(或者

  • 问题内容: 我从以下格式的文件中获取输入: 现在,我想在我的Java代码中读取int1,int2,int3和int4。我该如何在Java中使用正则表达式匹配。谢谢。 问题答案: 为了避免空值:

  • 我的输入只能有两个值或。我可以使用什么正则表达式来确保这两个单词中的任何一个都已提交?