空格分隔的字符串java需要正则表达式

Avi*_*hek 0 java regex boost-regex regex-greedy regex-lookarounds

我有一个处理许多空格分隔字符串的操作,我正在寻找一个字符串匹配函数的正则表达式,如果前两个字符串在第一个空格以大写字母开头之前将触发传递,如果不是,则返回false.

例子:

"AL_RIT_121 PA_YT_32 rit cell 22 pulse"
Run Code Online (Sandbox Code Playgroud)

将返回true,因为前两个字符串AL_RIT_121,并PA_YT_32用大写字母开头A,并P分别

"AL_RIT_252 pa_YT_21 mal cell reg 32 1 ri"
Run Code Online (Sandbox Code Playgroud)

将以p小写形式返回false .

Mik*_*uel 6

Pattern.compile("^\\p{Lu}\\S*\\s+\\p{Lu}")
Run Code Online (Sandbox Code Playgroud)

将使用该.find()方法.没有理由matches在前缀测试中使用,但如果你有外部约束,那就行了

Pattern.compile("^\\p{Lu}\\S*\\s+\\p{Lu}.*", Pattern.DOTALL)
Run Code Online (Sandbox Code Playgroud)

打破这个:

  1. ^ 匹配字符串的开头,
  2. \\p{Lu} 匹配任何大写字母,
  3. \\S* 匹配零个或多个非空格字符,包括 _
  4. \\s+ 匹配一个或多个空格字符,和
  5. 第二个\\p{Lu}匹配开头第二个单词的大写字母.

在第二个变体中,.*Pattern.DOTALL输入的其余部分匹配.