Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-检测未被非字母数字字符串包围的字母数字字符串_Regex - Fatal编程技术网

Regex 正则表达式-检测未被非字母数字字符串包围的字母数字字符串

Regex 正则表达式-检测未被非字母数字字符串包围的字母数字字符串,regex,Regex,我有以下字符串: aaa bbb()!ccc ddd efef 我想检测所有“干净”字母数字单词的实例,即“aaa”、“ddd”、“efef”,它们在单词的前面和结尾没有其他字符。字符串可以是由任何非字母数字字符包围的任何字母数字字符 我可以用四种不同的正则表达式来实现” \s(\w+) ^\w+\s \s\w+$ ^\w+$ 但是如何在单个表达式中执行此操作?使用|或运算符: (^|\s)\w+(\s|$) 编辑:如果您的原始字符串是$str,您可以在“.$str.”上使用\s\w\s模式,

我有以下字符串:

aaa bbb()!ccc ddd efef

我想检测所有“干净”字母数字单词的实例,即“aaa”、“ddd”、“efef”,它们在单词的前面和结尾没有其他字符。字符串可以是由任何非字母数字字符包围的任何字母数字字符

我可以用四种不同的正则表达式来实现”

  • \s(\w+)
  • ^\w+\s
  • \s\w+$
  • ^\w+$

  • 但是如何在单个表达式中执行此操作?

    使用
    |
    或运算符:

    (^|\s)\w+(\s|$)
    

    编辑:如果您的原始字符串是
    $str
    ,您可以在“.$str.”

    上使用
    \s\w\s
    模式,例如,它将匹配
    bbb()
    bbb
    部分,并给出一个假阳性。就像我解决的那样:“(^\s)(\w+)($\s)”