好的,我试着创建一个正则表达式,它将确保这两件事:1.字符串包含两个'*'1.字符串以3位数字结尾我已经做了一些东西,这类作品,但它并不确保只有2 *,因为在这些空间之间的 *,它可能发生,有另一个 *:
Pattern.compile(".*\\*.*\\*[0-9]{3}", Pattern.CASE_INSENSITIVE);
所以,这些.* 可以是**任何东西,任何数量的字符,单词等等,**除了 ,因为我需要确保只有2个''。我怎么能这样做呢?
mjqavswn1#
[^*]匹配除*字符以外的任何字符,因此您可以
[^*]
*
^(?:[^*]*\*){2}[^*]*\d{3}$
^
(?:
[^*]*
\*
)
{2}
\d{3}
$
Demo您在注解中添加了一个约束,即注解应以*结尾,后跟3位数字。
^(?:[^*]*\*){2}\d{3}$
Demo
bttbmeg02#
尝试跟随
^.*[\\*]{1}.*[\\*]{1}.*[0-9]{3}$
它确保有两个 *,并以3个数字结尾
2条答案
按热度按时间mjqavswn1#
[^*]
匹配除*
字符以外的任何字符,因此您可以^
-线锚起点(?:
-非捕获组的开始[^*]*
-匹配零个或多个非*
字符\*
-在*
上匹配)
-非捕获组的结尾{2}
-重复两次[^*]*
-仅匹配非*
字符\d{3}
-以3位数结尾$
-线锚末端Demo
您在注解中添加了一个约束,即注解应以
*
结尾,后跟3位数字。Demo
bttbmeg02#
尝试跟随
它确保有两个 *,并以3个数字结尾