Java 为什么正则表达式模式匹配|&引用;在下面显示的代码中?
嗯。我知道我错过了什么。我只是无法找出我错过了什么。下面提到的模式与“|”匹配,我不知道为什么。有人能解释一下吗。谢谢 我想匹配一个字符。字符集是{、}、[、]、|、,?等等Java 为什么正则表达式模式匹配|&引用;在下面显示的代码中?,java,regex,Java,Regex,嗯。我知道我错过了什么。我只是无法找出我错过了什么。下面提到的模式与“|”匹配,我不知道为什么。有人能解释一下吗。谢谢 我想匹配一个字符。字符集是{、}、[、]、|、,?等等 public static void main(String[] args) { String str = ""; if (str.matches("[\"|`|+|,|;|<|>|?|\\[|\\]|{|}|']")) System.out.println("matches")
public static void main(String[] args) {
String str = "";
if (str.matches("[\"|`|+|,|;|<|>|?|\\[|\\]|{|}|']"))
System.out.println("matches");
}
publicstaticvoidmain(字符串[]args){
字符串str=“”;
if(str.matches(“[\”、“[\”、“[\\\\\[\\\]]{124}”]))
System.out.println(“匹配”);
}
您使用的是[]
来开始和结束表达式,而看起来您使用的是与()
配套的语法。方括号允许您列出一组匹配的字符,并且
多次出现在您的列表中。括号设置了一个分组,您可以在其中使用
来表示“或”
我认为解决方案是删除那些
|。你不需要用任何东西分隔方括号内的字符,只需将它们全部列出。你正在使用[]
来开始和结束表达式,而看起来你使用的语法与()
。方括号允许您列出一组匹配的字符,并且
多次出现在您的列表中。括号设置了一个分组,您可以在其中使用
表示“或”
我认为你的解决方案是删除那些
。你不需要用任何东西分隔方括号内的字符,你只需要列出所有字符。你不需要在正则表达式中使用
符号,因为你使用的是一个字符数组来匹配。基本上,如果你想将某个字符与a、b、c或d
匹配,这意味着字符串可以包含任何你可以简单地做的字母
String pattern = "[abcd]*"; // * means they can be repeated, for example "aabdcb"
str.matches(pattern);
不需要使用管道。另一方面,如果您想严格地说字符串是a或b
,您可以使用如下模式
pattern = "(a)|(b)"; // matches either "a" or "b"
希望这能帮你把事情弄清楚一点
您可能想签出以了解有关在正则表达式中使用管道的更多信息。您不需要在正则表达式中使用
符号,因为您使用的是一个字符数组来匹配。基本上,如果您想将某个内容匹配到a、b、c或d
,这意味着字符串可以包含这些字母中的任何一个,您只需执行以下操作即可
String pattern = "[abcd]*"; // * means they can be repeated, for example "aabdcb"
str.matches(pattern);
不需要使用管道。另一方面,如果您想严格地说字符串是a或b
,您可以使用如下模式
pattern = "(a)|(b)"; // matches either "a" or "b"
希望这能帮你把事情弄清楚一点
您可能想查看以了解有关在正则表达式中使用管道的更多信息。简而言之,您在[]括号中给出了|
方括号[]内的任何字符都将匹配
移除大括号内的所有|。简而言之,您已经在[]括号中给出了|
方括号[]内的任何字符都将匹配
移除大括号内的所有|。您混淆了两种不同的指定备选方案的方法:
- a(
[]
)
- (
|
)
选择一种。您混合了两种不同的指定备选方案的方法:
- a(
[]
)
- (
|
)
选择一个。你说你对|匹配感到惊讶,但你在你想允许的角色集中列出了|吗?你说你对|匹配感到惊讶,但在你想允许的角色集中列出了|吗?哦,亲爱的上帝。我要休息一下。谢谢兄弟。哦,亲爱的上帝。我要休息一下。谢谢兄弟。谢谢你的回答。:)谢谢你的回答wer.:)