gpt4 book ai didi

java - 尝试概括正则表达式

转载 作者:行者123 更新时间:2023-12-01 21:22:13 24 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来在第二个点之后分割字符串。

例如:字符串 "AF23.2016.12" 应拆分 {"AF23.2016", ".12"}

到目前为止,我的拆分得到了以下正则表达式:

"(?<=(\\p{Alnum}+)\\.(\\p{Alnum}{4}))(?=\\.)"

这对于这个字符串来说效果很好,但我必须指定第二部分的长度 (\\p{Alnum}{4}) 但它是变体。

我尝试使用 + 代替 {4},但如果这样做,分割不起作用。结果:“AF23.2016.12”

如何将第二部分概括为任意长度?

最佳答案

如果你尝试"(?<=\\.(\\p{Alnum}+))(?=\\.)"你会得到一个异常(exception):

Look-behind group does not have an obvious maximum length

(我不知道为什么你没有收到带有两个 + 的消息;也许你应该。)但它给出了一个想法,你可以做些什么来使其工作:限制后视组的长度。而不是无限+使用类似 {1,1000} 的内容。这对我有用:

"(?<=(\\p{Alnum}{1,1000})\\.(\\p{Alnum}{1,1000}))(?=\\.)"

(选择较小的重复限制可能会提高空间和/或时间要求。我还没有检查过。)

关于java - 尝试概括正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38926622/

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