Java 正则表达式以精确查找给定字符串

Java 正则表达式以精确查找给定字符串,java,regex,Java,Regex,我试图找到一个正则表达式来匹配给定的字符串模式。字符串是 “ABC正常:123 XYZ正常:789” 在这些字符串之后包含:的任何其他字符串都可以视为不匹配。 我尝试了以下正则表达式,但似乎没有任何效果: "[ABC OK:][a-zA-Z_0-9\\s][XYZ OK:][a-zA-Z_0-9\\s]^:" "ABC OK:[a-zA-Z_0-9\\s]XYZ OK:[a-zA-Z_0-9\\s]^:" 非常感谢您的帮助。ABC OK:123 XYZ OK:789是一个可以找到该字符串的有效

我试图找到一个正则表达式来匹配给定的字符串模式。字符串是 “ABC正常:123 XYZ正常:789” 在这些字符串之后包含:的任何其他字符串都可以视为不匹配。 我尝试了以下正则表达式,但似乎没有任何效果:

"[ABC OK:][a-zA-Z_0-9\\s][XYZ OK:][a-zA-Z_0-9\\s]^:"
"ABC OK:[a-zA-Z_0-9\\s]XYZ OK:[a-zA-Z_0-9\\s]^:"

非常感谢您的帮助。

ABC OK:123 XYZ OK:789
是一个可以找到该字符串的有效正则表达式;-)

在您的第一个示例中,
“[ABC OK:[a-zA-Z_0-9\\s][XYZ OK:[a-zA-Z_0-9\\s]^:”
,这里有一些问题:

  • [ABC OK::
    表示:匹配单个字符,并且它必须是
    'A','B','C','O','K',
    '中的一个:'
  • [a-zA-Z_0-9\\s]
    ——这也只匹配单个字符。如果您想要其中的多个,请在其后面使用
    +
    [a-zA-Z_0-9\\s]+
  • ^:
    --不确定您认为这应该做什么,但由于它不在正则表达式的开头,
    ^
    没有任何特殊含义,因此它将只匹配
    “^:”
    字符串

如果只是验证字符串,请尝试。如果您需要提取特定的值,您可能希望使用
“ABC OK:\\s*(\\w+)\\s+XYZ OK:\\s*(\\w+)\\s*”
匹配器匹配()
,然后访问
匹配器组(1)
匹配器组(2)
。方括号外的
^
符号表示正则表达式的开始。另外,您能否更具体地说明您要匹配的内容?
^ABC OK:123 XYZ OK:789$
还不够吗?我只是在验证字符串,在删除“^”并在末尾添加“+”之后,我的需要就行了。谢谢Wiktor。