gpt4 book ai didi

java正则表达式匹配问题

转载 作者:行者123 更新时间:2023-12-01 23:18:49 31 4
gpt4 key购买 nike

我必须使用java正则表达式来匹配这样的字符串: [] [a1] ,[abdf123] ...:

也就是说,一个括号里面有一个字符串,这个里面的字符串是空的,或者必须是这样的:aaa123,a12,b34,即一个字母序列,然后是一个数字序列。

所以我这样写正则表达式:

Pattern.matches("^(\\[)[|[a-zA-Z]+(\\d+)](\\])$","[abc123]");

但令我惊讶的是,它返回 false。为了测试 [a-zA-Z]+(\d+) 是否可以正确匹配 [] 内的字符串,我这样编写正则表达式:

Pattern.matches("^[a-zA-Z]+(\\d+)$","abc123");

返回 true;

有人可以帮我解释一下吗?谢谢。

最佳答案

看起来第二个左括号(未转义的括号)正在启动一个字符集。也许你需要在空盒子周围加上括号。

删除括号匹配

Pattern.matches("^(\\[)[a-zA-Z]+(\\d+)(\\])$", "[abc123]")

要包含空箱,请尝试类似的操作

^(\\[\\])|(\\[[a-zA-Z]+\d+\\])$

我将空检查放在不同的位置(以使其更明确),但它基本上是相同的正则表达式,缺少额外的括号。

关于java正则表达式匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20836147/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com