gpt4 book ai didi

java - 杂乱的字符串。最后排除 '@' 字符的正则表达式

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:48 25 4
gpt4 key购买 nike

我有一个相当困惑的字符串数组,它们不遵循任何特定的模式。

基本上,是用户的属性被搞乱了(所有信息都在一个字符串中,没有遵循任何一种模式)。

我对 2 个特定属性(电子邮件和号码)感兴趣。我找到了一种获取电子邮件的方法,并认为以下正则表达式:

^9[0-9]{9}

适用于用户的手机。但是,某些用户的电子邮件地址确实等于电话号码 +“@”之类的东西。这似乎是个问题。

所以,我需要一个正则表达式来排除以下内容并只给我一个数字。

9876548877@

我试过了

^9[0-9]{9}((?!@).{0})*$"

并在这里获得完全匹配:

9876548877

但只有当字符串不包含除此之外的任何内容时,它才能很好地工作。

我试图实现的是在这样的字符串中获取准确的电话号码:

/* mess mess mess*/ John Doe Jr email: 9876548877@jdoe.com, phone number: 9876548877, /* more mess */

我该怎么做?提前致谢。

更新:

感谢您的回答先生,但任务有点不同

例如,我从 here 中提取了一个正则表达式然后我测试它here我得到结果 I want .我正在尝试完成相同的行为,但使用电话号码而不使用“@”以确保它正是我要查找的内容。

问题描述不当。我的错。

最佳答案

您可以使用环视来断言左边的不是非空白字符,右边的不是@:

(?<!\S)9[0-9]{9}(?!\@)

Regex demo

例如,如果在数字之前可以有 :,您可以省略开头的后视并使用单词边界 \b

关于java - 杂乱的字符串。最后排除 '@' 字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57405493/

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