我正在尝试查找正则表达式,以便仅从字符串中查找字母数字单词,即字母或数字组合的单词。如果一个单词是纯数字或纯字符,我需要丢弃它。
发布于 2010-01-15 02:39:55
试试这个正则表达式:
\b([a-z]+[0-9]+[a-z0-9]*|[0-9]+[a-z]+[a-z0-9]*)\b或者更紧凑:
\b([a-z]+[0-9]+|[0-9]+[a-z]+)[a-z0-9]*\b这将匹配所有以一个或多个字母开头,后面跟着一个或多个数字的单词(请注意单词边界\b),反之亦然,后面可能跟一个或多个字母或数字。因此,始终满足至少一个字母和至少一个数字的条件。
发布于 2010-01-15 02:42:42
使用lookaheads:
'/\b(?![0-9]+\b)(?![a-z]+\b)[0-9a-z]+\b/i'快速测试还显示了示例用法:
$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);输出:
F0O
8ar发布于 2010-01-15 02:36:11
这将返回所有单独的字母数字单词,您可以遍历这些单词。我不认为正则表达式可以独立完成所有的工作。
\b[a-z0-9]+\b确保将其标记为不区分大小写。
https://stackoverflow.com/questions/2066563
复制相似问题