gpt4 book ai didi

Java正则表达式检查字符串包含超过2个单词并且包含数字

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

我正在编写一个正则表达式来匹配包含 2 个以上单词的字符串,并且应该至少有 1 个可用数字或 1 个没有数字的单词。

即如果我有以下字符串:

1. "Sample data with no digit" (no digit)
2. "1004" (less than 2 words)
3. "1004 1008" (no alphabets)
4. "1004 data" (exactly 2 words)
5. "5ample Data with digits" (note that S-> 5)
6. "Sample Data with 1004"

正则表达式应匹配第 5、6 个字符串(不获取其他字符串的原因已随数据一起提及)

我尝试了以下操作,但以下操作始终返回所有字符串:

[\d[0-9]|[ABEGFIHKJLOQPSRUTXZbgfihkjloqpsuz!]]+[\w\s]* (returns all strings)

请注意,我使用的是 JAVA。

请提前提供帮助并致谢。

最佳答案

您可以将此正则表达式与 2 个先行断言一起使用:

^(?=.*\b[a-zA-Z]*\d+[a-zA-Z]*)(?=.*\b[a-zA-Z]+\b)(?:\w+\h+){2,}\w+

RegEx Demo

正则表达式分解:

  • (?=.*\b[a-zA-Z]*\d+[a-zA-Z]*):先行查找以确保我们有一个带有数字的单词
  • (?=.*\b[a-zA-Z]+\b):先行断言我们有一个不带数字的单词
  • (?:\w+\h+){2,}\w+:确保输入至少有 3 个单词

关于Java正则表达式检查字符串包含超过2个单词并且包含数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330247/

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