gpt4 book ai didi

java - 正则表达式检索任何字母数字 otp 代码

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:41 26 4
gpt4 key购买 nike

我正在尝试获取一个正则表达式来检索字母数字 OTP 代码(代码的长度可能是动态的,即取决于用户的选择)并且必须至少包含一位数字。

我尝试了以下正则表达式: “[a-zA-z][0-9].[a-zA-z]

但是如果代码中有特殊字符,它应该返回 null,而不是检索不需要的特殊字符前后的字符。

希望正则表达式在其上成功运行的一些包含 OTP 的示例消息:

  1. OTP 为 ****,交易金额为 78.90 印度卢比。
  2. **** 是您的一次性密码。
  3. 您好,您的 OTP 是 ****。

至少有一位数字的字母数字 OTP 示例:

  1. 78784
  2. aZ837
  3. 987Ny
  4. 19hd35
  5. fc82pl

最佳答案

这会有点困难,也许这个表达式可以使用 i 标志:

[a-z0-9]*\d[a-z0-9]*

或者有单词边界:

(?<=\b)[a-z0-9]*\d[a-z0-9]*(?=\b)

测试

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "[a-z0-9]*\\d[a-z0-9]*";
final String string = "78784\n"
+ "aZ837\n"
+ "987Ny\n"
+ "19hd35\n"
+ "fc82pl";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}

表达式在 regex101.com 的右上面板中进行了解释, 如果你想探索/简化/修改它,在this link ,如果愿意,您可以观察它如何与一些样本输入相匹配。

关于java - 正则表达式检索任何字母数字 otp 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283858/

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