Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,让我们看一下以下字符串: String input = "A bla bla bla A blaa\r\n" + "B boo foo A B abo \r\n" + "A yow B B yow"; 这是我的正则表达式: String regex = "([AB]) (.*?)(?=$|[AB])"; 我对每个“A”或“B”都很满意 但我要寻找的是,只有当它是我字符串每行的第一个单词时,才能得到“A”或“B” 提前感谢。模式:

让我们看一下以下字符串:

String input = "A bla bla bla A blaa\r\n" +
               "B boo foo A B abo \r\n" + 
               "A yow B B yow";
这是我的正则表达式:

String regex = "([AB]) (.*?)(?=$|[AB])";
我对每个“A”或“B”都很满意

但我要寻找的是,只有当它是我字符串每行的第一个单词时,才能得到“A”或“B”

提前感谢。

模式: ([AB]).*

匹配:
1) A&A布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉
2) 布福早餐酒店 3) A&A yow B yow


解释你需要什么。查找结果:

您需要在此处完成两件事:

  • 启用模式
  • 使用
    ^
    仅在开头匹配
    AB
这个正则表达式可以:

"(?m)^[AB]"

提示:
^
匹配行的开头。边界匹配器如何@ArnaudDenoyelle您应该指定需要多行模式:)再次感谢。它帮助了我。但你能解释一下,多行到底做什么?我无法从Java文档中理解它。@RohitJain Lol,我感到困惑=P@yataodev多行允许您执行由
\n
\r\n
分隔的匹配accors行。在这些情况下,
^
$
不仅匹配整个字符串的开头和结尾,而且匹配由
\n
分隔的每个字符串的开头和结尾。其他锚点
\A
\Z
接管
^
$
以匹配整个字符串的开头和结尾。@Rohit好的,我明白了:)Thanks@Rohit如何将多行与DOTALL组合?我想用第二行获得第三行,如下面的示例:“String input=”A bla bla A blaa\r\n“+”B boo foo A B abo\r\n“+”科比•布莱恩特\r\n“+”A yow B yow”我不认为那是OP想要的。