gpt4 book ai didi

java - Java 中的正则表达式命令

转载 作者:行者123 更新时间:2023-11-30 09:03:49 25 4
gpt4 key购买 nike

我了解正则表达式的基础知识,但我无法创建满足所有这些条件的正则表达式。谁能告诉我怎么做。

  1. 字符串的长度必须至少为 20 个字符
  2. 字符串必须包含数字
  3. 数字前面必须有一些非数字字符
  4. 字符串的末尾必须是 DD/MM/YYYY HH:MM 格式的日期 - 是的,中间有一个空格并且所有数字都必须存在。出现在字符串日期部分的数字不被视为规则 2 的可满足性条件。
  5. 如果第一个数字出现之前有$符号,则该字符串无效

我试过使用代码:

if (sCurrentLine.length() > 20) {   
for (int i=0; i <= sCurrentLine.length() - 1; i++) {
char character = sCurrentLine.charAt(i);
int ascii = (int) character;
if (((ascii >= 48) && (ascii <= 57)) && (i!=0)) {
char character2 = sCurrentLine.charAt(i-1);
int ascii2 = (int) character2;
if(!((ascii2 >= 48) && (ascii2 <= 57))) {
//
}
}
}
}

但是好像太复杂了。

是否有可以解决此问题的正则表达式方法?

最佳答案

试试这个:

if (sCurrentLine.matches("(?=.{20})[^$]*[^\\d$]\\d.*\\d{2}/\\d{2}/\\d{4} \\d{2}:\\d{2}")) 

使用断言有 20 个字符的前瞻检查长度(这当然意味着 至少 20 个字符)。

您需要的数字逻辑可以表示为“以任意数量的非美元字符开始,一个非美元/数字字符然后是一个数字”,这是正则表达式的第一部分。

最后一部分是日期格式。请注意,这只会检查正确位置是否有数字,而不是检查日期是否合法。

关于java - Java 中的正则表达式命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25508878/

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