gpt4 book ai didi

java - 正则表达式使用 ? java中的运算符

转载 作者:行者123 更新时间:2023-12-01 16:33:39 24 4
gpt4 key购买 nike

我有一个要匹配的示例字符串:"a123456.java,a12344*javaaaaaaaaaaaaa"

我使用以下正则表达式模式:Pattern p=Pattern.compile("a[0-9]+[.]?[a-zA-Z]+");

现在?运算符表示 0 次或多次出现 "."。为什么字符串 "a12344*javaaaaaaaaaaaaa" 没有被拾取?为什么 * 字符不计为 0 次出现?

最佳答案

如果您的意思是您希望 . 拾取 *,因为这意味着“任何内容”:

在字符类中,. 变成文字 .,而不是表示“任何内容”的字符。

如果您想匹配任何内容,请使用 .? 而不是 [.]?

<小时/>

如果您的意思是 * 不是 .,那么 . 的出现次数为零:

您是对的,但在您的正则表达式中,. 后面必须跟一个字母 ([a-zA-Z]),并且 * 显然不是一个字母。

为了澄清,您有:

a -> "a"
[0-9]+ -> "12344"
[.]? -> ""
[a-zA-Z]+ -> Cannot match "*"

关于java - 正则表达式使用 ? java中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705237/

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