首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找字符串的regex包含字母和数字的单词。

问查找字符串的regex包含字母和数字的单词。
EN

Stack Overflow用户
提问于 2020-05-12 19:00:46
回答 2查看 1.7K关注 0票数 0

我正在尝试编写一个正则表达式来查找包含字母和数字的字符串(而不是字母数字检查,因为word应该严格地同时包含字母和数字)。

我想出了这个^(?=.*[a-zA-Z])(?=.*[0-9])

下面是指向上述regex的链接:https://regex101.com/r/Y97ykL/1

上面的regex适用于下面这样的简单场景

  1. a1b4cc -> true (包含字母和digits)
  2. abc -> false (仅包含letters)
  3. 123 -> false (仅包含数字))

但是,有几种情况我无法用上面的正则表达式来描述。我如何更新我的上述正则表达式,使其也适用于下面的示例?

  1. abc d77hv -> True (因为efg123既包含字母又包含digits)
  2. 798 h7ghd -> True (因为h7ghd既包含字母又包含digits)
  3. 798 abcd -> False (因为没有既包含字母又包含数字的单词)

我不太熟悉regex,但是是否可以编写regex来检查上面描述的场景,而不迭代字符串中的每个单词呢?谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-15 09:10:14

regex ^(?=.*\b(?=\S*[a-zA-Z])(?=\S*[0-9]))按需要工作。它试图找到一个单词边界(\b),然后可以找到所请求的字母和数字的混合。

因为原始正则表达式也只匹配一行开头的零个字符,所以这个正则表达式的行为方式是相同的。

票数 1
EN

Stack Overflow用户

发布于 2020-05-14 11:54:35

试着在一行中找到一个字母和一个数字,或者一个数字和一个字母。

代码语言:javascript
复制
^((.*[0-9]+)[a-zA-Z]+.*)|((.*[a-zA-Z]+)[0-9]+.*)$

查看示例:https://regex101.com/r/Y97ykL/3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61759875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档