gpt4 book ai didi

java - 由点分隔的两部分字符串的正则表达式

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

我需要为由“.”分隔的两部分组成的字符串编写一个正则表达式。以下是条件,

  1. <<1st part>>.<<2nd part>> : Example- Time01.Sheet
  2. 第 1 部分应包含字母数字字符,并且必须至少包含 1 个大写字母、1 个小写字母和 1 个数字。
  3. 第二部分应包含字母数字字符。

我的代码:((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=\\S+$).*)[.]([\\w]+)$

输入:Vijay.hello876IUY

实际输出:有效数据

预期输出:无效数据(因为第一部分不包含任何数字)

任何人请帮我解决这个...

最佳答案

你可以使用

^(?=[^.]*[a-z])(?=[^.]*[A-Z])(?=[^.]*[0-9])[a-zA-Z0-9]+\.[a-zA-Z0-9]+$

参见 regex demo .

详情

  • ^ - 字符串的开始
  • (?=[^.]*[a-z]) - 除 之外的 0+ 个字符后必须有一个小写 ASCII 字母。
  • (?=[^.]*[A-Z]) - 除 之外的 0+ 个字符后必须有一个大写 ASCII 字母。
  • (?=[^.]*[0-9]) - 除了 之外,0+ 个字符后必须有一个数字。
  • [a-zA-Z0-9]+ - 1+ 个字母数字字符
  • \. - 一个点
  • [a-zA-Z0-9]+ - 1+ 个字母数字字符
  • $ - 字符串结尾。

在 Java 中:

s.matches("(?=[^.]*[a-z])(?=[^.]*[A-Z])(?=[^.]*[0-9])[a-zA-Z0-9]+\\.[a-zA-Z0-9]+")

由于 matches() 需要完整的字符串匹配,因此您不需要在开头使用 ^ 并在结尾使用 $ anchor 。

关于java - 由点分隔的两部分字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53044284/

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