gpt4 book ai didi

java - 正则表达式:方括号[]和竖线之间的区别|

转载 作者:行者123 更新时间:2023-12-02 05:20:20 28 4
gpt4 key购买 nike

我无法理解方括号 [] 和竖线 | 之间的区别在正则表达式中。

例如:当我在 java 中使用此代码来更改字符串的格式时(使用 |):

str = str.replaceAll("(\\d+|\\W)", "$0 ").replaceAll("\\s+", " ").trim();

来自:(12+((23+37) * (774*435)))

收件人:( 12 + ( ( 23 + 37 ) * ( 774 * 435 ) ) )

这是所需的输出。

但是,当我使用此代码时,我得到不同的输出(使用 []):

str = str.replaceAll("[\\d+\\W]", "$0 ").replaceAll("\\s+", " ").trim();

我从:(12+((23+ 37) * (774*435)))

至:( 1 2 + ( ( 2 3 + 3 7 ) * ( 7 7 4 * 4 3 5 ) ) )

注意数字之间的空格(不需要)。

那么,有人可以解释一下发生了什么事吗?或者说[]和|有什么区别?

谢谢。

最佳答案

方括号 ([]) 取消 + 的效果。因此,当您有 [\\d+\\W] 时,它匹配单个字符(数字、+ 或非单词)

关于java - 正则表达式:方括号[]和竖线之间的区别|,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26565667/

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