【发布时间】:2017-07-26 14:42:37
【问题描述】:
我正在编写一个正则表达式来匹配包含超过 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。
请提前帮助和感谢。
【问题讨论】:
-
“珠穆朗玛峰、艾格峰、K2”的意思是什么?
-
试试这个
([0-9]|[a-zA-Z]){2,}\s* -
是的,它是一个有效的字符串,应该被提取。只要我们得到一个空格,就可以考虑一个词。所以,在这我们有 3 个词。
-
@Lino,共享的正则表达式匹配“data”字符串而不是“data data 2”
-
“应该至少有 1 个可用数字或 1 个没有数字的单词” - 这没有意义,因为任何字母数字字符串都满足此要求。