首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regex仅选择字母数字单词

使用regex仅选择字母数字单词
EN

Stack Overflow用户
提问于 2010-01-15 02:34:06
回答 5查看 6.4K关注 0票数 6

我正在尝试查找正则表达式,以便仅从字符串中查找字母数字单词,即字母或数字组合的单词。如果一个单词是纯数字或纯字符,我需要丢弃它。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-15 02:39:55

试试这个正则表达式:

代码语言:javascript
复制
\b([a-z]+[0-9]+[a-z0-9]*|[0-9]+[a-z]+[a-z0-9]*)\b

或者更紧凑:

代码语言:javascript
复制
\b([a-z]+[0-9]+|[0-9]+[a-z]+)[a-z0-9]*\b

这将匹配所有以一个或多个字母开头,后面跟着一个或多个数字的单词(请注意单词边界\b),反之亦然,后面可能跟一个或多个字母或数字。因此,始终满足至少一个字母和至少一个数字的条件。

票数 6
EN

Stack Overflow用户

发布于 2010-01-15 02:42:42

使用lookaheads:

代码语言:javascript
复制
'/\b(?![0-9]+\b)(?![a-z]+\b)[0-9a-z]+\b/i'

快速测试还显示了示例用法:

代码语言:javascript
复制
$str = 'foo bar F0O 8ar';
$arr = array();
preg_match_all('/\b(?![0-9]+\b)(?![a-z]+\b)[0-9a-z]+\b/i', $str, $arr);
print_r($arr);

输出:

代码语言:javascript
复制
F0O
8ar
票数 3
EN

Stack Overflow用户

发布于 2010-01-15 02:36:11

这将返回所有单独的字母数字单词,您可以遍历这些单词。我不认为正则表达式可以独立完成所有的工作。

代码语言:javascript
复制
\b[a-z0-9]+\b

确保将其标记为不区分大小写。

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

https://stackoverflow.com/questions/2066563

复制
相关文章

相似问题

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