gpt4 book ai didi

java - 匹配用户和 user@domain 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 07:43:30 24 4
gpt4 key购买 nike

用户可以作为“user”或“user@domain”登录。在这两种情况下,我只想提取“用户”。我正在寻找适合它的匹配器表达式,但我很挣扎。

final Pattern userIdPattern = Pattern.compile("(.*)[@]{0,1}.*");
final Matcher fieldMatcher = userIdPattern.matcher("user@test");
final String userId = fieldMatcher.group(1)

userId 返回“user@test”。我尝试了各种表达方式,但似乎没有什么符合我的要求:-(

有什么想法吗?

最佳答案

如果您使用 "(.*)[@]{0,1}.*"图案与 .matches() , (.*)首先抓取整行,然后,当正则表达式索引仍在行尾时, [@]{0,1}模式在行尾触发并匹配,因为它可以匹配 0 @字符,然后是 .*再次在那个位置匹配,因为它匹配任何 0+ 个字符。因此,整条线落在您的第 1 组中。

你可以使用

String userId = s.replaceFirst("^([^@]+).*", "$1");

参见 regex demo .

详情

  • ^ - 字符串开始
  • ([^@]+) - 第 1 组(由替换模式中的 $1 指代):除 @ 之外的任何 1+ 个字符
  • .* - 字符串的其余部分。

关于java - 匹配用户和 user@domain 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400529/

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