Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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 在冒号的任意一侧匹配文本_Java_Regex - Fatal编程技术网

Java 在冒号的任意一侧匹配文本

Java 在冒号的任意一侧匹配文本,java,regex,Java,Regex,我正在努力学习正则表达式的基础知识(Java),并设想了一些示例场景进行练习,而正如您所预料的那样,最后一个(对我来说也是最难的)不起作用。这是: <[a-zA-Z]>:[a-zA-Z] :[a-zA-Z] 我想让它做的是识别:更多的文本。如果输入像::bar,则无法工作 我做错了什么?您只匹配了一个字符。要匹配多个,需要添加“+”: <[a-zA-Z]+>:[a-zA-Z]+ :[a-zA-Z]+ 如果文本是可选的,还可以指定“*”,这意味着“零或更多”。“+”

我正在努力学习正则表达式的基础知识(Java),并设想了一些示例场景进行练习,而正如您所预料的那样,最后一个(对我来说也是最难的)不起作用。这是:

<[a-zA-Z]>:[a-zA-Z]
:[a-zA-Z]
我想让它做的是识别
:更多的文本。如果输入像:
:bar
,则无法工作


我做错了什么?

您只匹配了一个字符。要匹配多个,需要添加“+”:

<[a-zA-Z]+>:[a-zA-Z]+
:[a-zA-Z]+

如果文本是可选的,还可以指定“*”,这意味着“零或更多”。“+”表示“1个或多个”

您只匹配一个字符。要匹配多个,需要添加“+”:

<[a-zA-Z]+>:[a-zA-Z]+
:[a-zA-Z]+
如果文本是可选的,还可以指定“*”,这意味着“零或更多”。“+”表示“1个或多个”

如果您还想从字面上捕捉“一些文本”,您也需要捕捉空白

    String teststring = "<SOME TEXT>:SOME MORE TEXT";
    String regex = "<[\\sa-zA-Z]+>:[\\sa-zA-Z]+";
    Matcher m = Pattern.compile(regex).matcher(teststring);
    while (m.find())
    {
        System.out.println(teststring.substring(m.start(), m.end()));
    }
String teststring=“:更多文本”;
字符串regex=“:[\\sa-zA-Z]+”;
Matcher m=Pattern.compile(regex).Matcher(teststring);
while(m.find())
{
System.out.println(teststring.substring(m.start(),m.end());
}
如果您还想从字面上捕捉“一些文本”,您还需要捕捉空白

    String teststring = "<SOME TEXT>:SOME MORE TEXT";
    String regex = "<[\\sa-zA-Z]+>:[\\sa-zA-Z]+";
    Matcher m = Pattern.compile(regex).matcher(teststring);
    while (m.find())
    {
        System.out.println(teststring.substring(m.start(), m.end()));
    }
String teststring=“:更多文本”;
字符串regex=“:[\\sa-zA-Z]+”;
Matcher m=Pattern.compile(regex).Matcher(teststring);
while(m.find())
{
System.out.println(teststring.substring(m.start(),m.end());
}

如果文本中有空格,请不要忘记空格。我还不需要空格。但是谢谢你的注意@如果文本中有空格,请不要忘记空格。我还不需要空格。但是谢谢你的注意@IgorChubinNo,我不需要空白。尽管如此,还是要谢谢你+1.如果想简化代码,可以用
System.out.println(m.group())替换print语句。不,我不需要空白。尽管如此,还是要谢谢你+1.如果想简化代码,可以用
System.out.println(m.group())替换print语句