gpt4 book ai didi

Java split()方法在Windows上无法区分 "."和 "-"

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

例如:

"xxxxx-ex-xxxxx.ex-xxxx".split(".ex")

结果将是“xxxxx”、“-xxxxx”和“-xxxx”,这意味着“-ex”已被识别为“.ex”。

当然,“\.ex”在这种情况下效果很好。我只是想知道为什么会发生这种事?好像只发生在 Windows 上。

最佳答案

当调用"xxxxx-ex-xxxxx.ex-xxxx".split(".ex")时,您正在调用java.lang.String.split() 。此方法接受“.ex”作为正则表达式(正则表达式)。

我们可以使用RegExr来了解正则表达式并了解为什么-ex部分也被识别。我已经将您的字符串和正则表达式输入到网站中:https://regexr.com/4rq3o

从该工具中我们可以看到点 . 是特殊的,意味着匹配任何字符,因此通过输入“.ex”意味着找到一个模式,其中存在任何后跟 ex 的字符。

为了将“.ex”视为文字字符串,我们需要转义点。正如您所发现的, \.ex 可以解决问题,因为反斜杠是转义字符。

关于Java split()方法在Windows上无法区分 "."和 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638933/

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