Perl正则表达式提取两个连续的单词

use*_*275 3 regex perl grep pattern-matching

我试图从列表中提取包含两个由一个或多个空格分隔的单词的字符串.例:

@a=("aaa12:.", "lala lulu", "erwer", ",", "lala   loqw  asqwd", "asdas   sadsad", "asasd| asq");
@b=grep {/\w+\s+\w+/} @a;
Run Code Online (Sandbox Code Playgroud)

这给了我

      'lala lulu',
      'lala   loqw  asqwd',
      'asdas   sadsad'
Run Code Online (Sandbox Code Playgroud)

但是我不想用三个字来点击那个......

我试过@b=grep {/^\w\s+\w$/}但是我没有得到任何比赛.应该很简单,但我只是不明白.我需要哪个正则表达式?

ike*_*ami 5

\w只匹配一个字符.您需要以下内容:

/^\w+\s+\w+\z/
Run Code Online (Sandbox Code Playgroud)
  • ^ 匹配字符串的开头.
  • \w+ 匹配一个或多个"单词"字符.
  • \s+ 匹配一个或多个空格字符.
  • \w+ 匹配一个或多个"单词"字符.
  • \z 匹配字符串的结尾.