Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第一个和第二个tocen正则表达式_Java_Regex - Fatal编程技术网

Java 第一个和第二个tocen正则表达式

Java 第一个和第二个tocen正则表达式,java,regex,Java,Regex,如何从字符串中获取“”中的第一个和第二个文本? 我可以用indexOf来做,但这真的很无聊(( 例如,我有一个用于解析的字符串,比如:“aaa”:“bbbbb”perhapsSomeOtherText 我想借助Regex模式获得aaa和bbbbb——这将帮助我在switch语句中使用它,并将大大简化我的应用程序/有几种方法可以做到这一点 将StringTokenizer或Scanner与UseDelimiter方法一起使用有几种方法 String str = "\"aaa\":\"bbbbb\"

如何从字符串中获取“”中的第一个和第二个文本? 我可以用
indexOf
来做,但这真的很无聊(( 例如,我有一个用于解析的字符串,比如:
“aaa”:“bbbbb”perhapsSomeOtherText

我想借助Regex模式获得
aaa
bbbbb
——这将帮助我在switch语句中使用它,并将大大简化我的应用程序/

有几种方法可以做到这一点
将StringTokenizer或Scanner与UseDelimiter方法一起使用有几种方法
String str = "\"aaa\":\"bbbbb\"perhapsSomeOtherText";

Pattern p = Pattern.compile("\"\\w+\""); // word between ""
Matcher m = p.matcher(str);
while(m.find()){
   System.out.println(m.group().replace("\"", ""));
}

将StringTokenizer或Scanner与UseDelimiter方法一起使用有几种方法
String str = "\"aaa\":\"bbbbb\"perhapsSomeOtherText";

Pattern p = Pattern.compile("\"\\w+\""); // word between ""
Matcher m = p.matcher(str);
while(m.find()){
   System.out.println(m.group().replace("\"", ""));
}

将StringTokenizer或Scanner与UseDelimiter方法一起使用有几种方法
String str = "\"aaa\":\"bbbbb\"perhapsSomeOtherText";

Pattern p = Pattern.compile("\"\\w+\""); // word between ""
Matcher m = p.matcher(str);
while(m.find()){
   System.out.println(m.group().replace("\"", ""));
}
将StringTokenizer或Scanner与UseDelimiter方法一起使用

String str = "\"aaa\":\"bbbbb\"perhapsSomeOtherText";

Pattern p = Pattern.compile("\"\\w+\""); // word between ""
Matcher m = p.matcher(str);
while(m.find()){
   System.out.println(m.group().replace("\"", ""));
}
输出:

aaa
bbbbb
输出:

aaa
bbbbb
输出:

aaa
bbbbb
输出:

aaa
bbbbb
像这样的

Pattern pattern = Pattern.compile("\"([^\"]*)\"");
Matcher matcher = pattern.matcher("\"aaa\":\"bbbbb\"perhapsSomeOtherText");
while (matcher.find()) {
    System.out.println(matcher.group(1));
}
输出

aaa
bbbbb
像这样的

Pattern pattern = Pattern.compile("\"([^\"]*)\"");
Matcher matcher = pattern.matcher("\"aaa\":\"bbbbb\"perhapsSomeOtherText");
while (matcher.find()) {
    System.out.println(matcher.group(1));
}
输出

aaa
bbbbb
像这样的

Pattern pattern = Pattern.compile("\"([^\"]*)\"");
Matcher matcher = pattern.matcher("\"aaa\":\"bbbbb\"perhapsSomeOtherText");
while (matcher.find()) {
    System.out.println(matcher.group(1));
}
输出

aaa
bbbbb
像这样的

Pattern pattern = Pattern.compile("\"([^\"]*)\"");
Matcher matcher = pattern.matcher("\"aaa\":\"bbbbb\"perhapsSomeOtherText");
while (matcher.find()) {
    System.out.println(matcher.group(1));
}
输出

aaa
bbbbb

如果您只有冒号分隔的字符串,只需将其拆分:

String str = ...; // colon delimited
String[] parts = str.split(":");
请注意,
split()

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}
然而,如果您想在更复杂的情况下使用模式来匹配和提取字符串片段,请按照以下操作:

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}

请注意定义捕获组的方括号。

如果您只有以冒号分隔的字符串,请将其拆分:

String str = ...; // colon delimited
String[] parts = str.split(":");
请注意,
split()

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}
然而,如果您想在更复杂的情况下使用模式来匹配和提取字符串片段,请按照以下操作:

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}

请注意定义捕获组的方括号。

如果您只有以冒号分隔的字符串,请将其拆分:

String str = ...; // colon delimited
String[] parts = str.split(":");
请注意,
split()

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}
然而,如果您想在更复杂的情况下使用模式来匹配和提取字符串片段,请按照以下操作:

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}

请注意定义捕获组的方括号。

如果您只有以冒号分隔的字符串,请将其拆分:

String str = ...; // colon delimited
String[] parts = str.split(":");
请注意,
split()

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}
然而,如果您想在更复杂的情况下使用模式来匹配和提取字符串片段,请按照以下操作:

private static Pattern pColonSplitter = Pattern.compile(":");

// now somewhere in your code:
String[] parts = pColonSplitter.split(str);
Pattert p = Patter.compile("(\\w+):(\\w+):");
Matcher m = p.matcher(str);
if (m.find()) {
   String a = m.group(1);
   String b = m.group(2);
}


请注意定义捕获组的括号。

在提问之前先尝试学习正则表达式如何?在提问之前先尝试学习正则表达式如何?在提问之前先尝试学习正则表达式如何?在提问之前先尝试学习正则表达式如何?您的代码不会编译,即使会编译,也会给出
:“
。你的代码不编译,即使它会编译,它也会给出
:“
。你的代码不编译,即使它会编译,它也会给出
:”
。你的代码不编译,即使它会编译,它也会给出
”:“
。谢谢你,我还不知道group(enumerator)!这是我真正需要的)Alex,我已经将正则表达式改为(“(\\w+):(\\d+:);为了找到像“aaa”这样的字符串:“123”fdfff但它不起作用-我在正则表达式模式中犯了什么错误?好的,所以第二个片段只匹配数字。它不匹配您的示例,但可能这就是您需要的。所以,祝您好运。是的,但在这种情况下,m.find()总是错误的((例如对于字符串({“alan”):“123”)jeff我用(\\w+):(\\d+):“regex((这是因为引号是字符串的一部分。您应该将regex更改为
模式。编译(“\”(\\w+):\”)
。但是等等!!!似乎您正在解析JSON。所以,使用JSON解析器,不要尝试重新发明轮子。谢谢,我不知道组(枚举器)!这就是我真正需要的)Alex,我已将正则表达式更改为(“(\\w+):(\\d+)”;以便查找像“aaa”这样的字符串:“123”fdfff但它不起作用-我在正则表达式模式中做错了什么?好的,所以第二个片段只匹配数字。它与您的示例不匹配,但可能这就是您需要的。祝您好运。是的,但m.find()在本例中始终为false((例如,对于字符串({“alan”:“123”jeff I get m.find()==false和(“(\\w+):(\\d+):”regex((这是因为引号是字符串的一部分。您应该将regex更改为
模式。compile(\“(\\w+):\”(\\d+))
。但是等等!!!你似乎在解析JSON。所以,使用JSON解析器,不要试图重新发明轮子。谢谢,我还不知道组(枚举器)!这正是我真正需要的)Alex,我已将正则表达式改为((\\w+)(\\d+);以便找到像“aaa”这样的字符串:“123”fdfff但它不起作用-我在正则表达式模式中做错了什么?好的,所以第二个片段只匹配数字。它与您的示例不匹配,但这可能是您需要的。所以,祝您好运。是的,但在这种情况下,m.find()总是false((例如,对于字符串({“alan”):“123”jeff,我得到m.find()==false,带有(“(\\w+)(\\d+):::::”正则表达式((这是因为引号是您字符串的一部分。您应该将正则表达式更改为
模式。编译(“\”(\\w+):“\”(\\d+)”)
。但是等等!!!似乎您正在解析JSON。所以,使用JSON解析器,不要试图重新发明轮子。谢谢,我还不知道组(枚举器)!这才是我真正需要的)Alex,我已将正则表达式更改为(“(\\w+):(\\d+)”;以便查找像“aaa”这样的字符串:“123”fdfff,但它不起作用-我在正则表达式模式中做错了什么?好的,所以第二个片段只匹配数字。它与您的示例不匹配,但可能这就是您所需要的。因此,祝您好运。是的,但m.find()总是这样