我正在尝试编写一个正则表达式来查找包含字母和数字的字符串(而不是字母数字检查,因为word应该严格地同时包含字母和数字)。
我想出了这个^(?=.*[a-zA-Z])(?=.*[0-9])
下面是指向上述regex的链接:https://regex101.com/r/Y97ykL/1
上面的regex适用于下面这样的简单场景
a1b4cc -> true (包含字母和digits)abc -> false (仅包含letters)123 -> false (仅包含数字))但是,有几种情况我无法用上面的正则表达式来描述。我如何更新我的上述正则表达式,使其也适用于下面的示例?
abc d77hv -> True (因为efg123既包含字母又包含digits)798 h7ghd -> True (因为h7ghd既包含字母又包含digits)798 abcd -> False (因为没有既包含字母又包含数字的单词)我不太熟悉regex,但是是否可以编写regex来检查上面描述的场景,而不迭代字符串中的每个单词呢?谢谢你的帮助!
发布于 2020-05-15 09:10:14
regex ^(?=.*\b(?=\S*[a-zA-Z])(?=\S*[0-9]))按需要工作。它试图找到一个单词边界(\b),然后可以找到所请求的字母和数字的混合。
因为原始正则表达式也只匹配一行开头的零个字符,所以这个正则表达式的行为方式是相同的。
发布于 2020-05-14 11:54:35
试着在一行中找到一个字母和一个数字,或者一个数字和一个字母。
^((.*[0-9]+)[a-zA-Z]+.*)|((.*[a-zA-Z]+)[0-9]+.*)$https://stackoverflow.com/questions/61759875
复制相似问题