gpt4 book ai didi

java - 正则表达式匹配任意位置包含 ()- 的电话号码

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

我正在努力创建一个 java 正则表达式来匹配以下格式的电话号码:

+49(173)46-5847

为了匹配这个字符串,我使用了这个正则表达式:

^(+(d+)((d+))(d+)-(d+))

当在任何位置找到括号、连字符或空格时,与字符串长度无关的表达式应该如何匹配整个字符串(在本例中为电话号码)?

不应匹配以下格式:

+491734658470049173465847

谢谢!

最佳答案

为此,您可能需要更强大的匹配算法。大概您不想允许像这样的匹配

+49)4(5321)3595)259((

但是您的描述中没有任何内容可以阻止这种情况(“在任何位置都可以找到括号、连字符或空格”)。要排除这样的解决方案,您需要跟踪是否在给定字符索引处的括号表达式内(是否已经传递了“(”字符),如果是,则不允许任何更多“(”字符,直到看到“)”。

这需要跟踪特定的状态,而仅使用正则表达式是不可能实现的。

关于java - 正则表达式匹配任意位置包含 ()- 的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54440208/

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