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