用空格分隔的一个或多个单词的正则表达式

use*_*139 16 regex

我正在寻找一个正则表达式,我有一个或多个单词(可能应该覆盖字母数字)也用空格(一个或多个空格)分隔

  1. "测试这个东西"
  2. "测试这个"
  3. "测试"

以上是它的一些例子

我写了一个正则表达式,看看#1重复了什么

\s*[a-zA-Z]*\s*[a-zA-Z]*\s*[a-zA-Z]*\s*
Run Code Online (Sandbox Code Playgroud)

所以我想做一些{3}重复部分的事情.

但它似乎不起作用..我不能相信这是困难的.

(\s*[a-zA-Z]*){3}
Run Code Online (Sandbox Code Playgroud)

mvp*_*mvp 27

如果你不在乎你有多少单词,这将有效:

[\w\s]+
Run Code Online (Sandbox Code Playgroud)

\w是任何字母数字.a-zA-Z如果您只需要字母,请将其替换.


Avi*_*Raj 5

我想你需要这样的东西

^\s*[A-Za-z0-9]+(?:\s+[A-Za-z0-9]+)*\s*$
Run Code Online (Sandbox Code Playgroud)

演示

要么

^(?:\s+[A-Za-z0-9]+)+\s+$
Run Code Online (Sandbox Code Playgroud)

演示

  • 我最喜欢你的答案,因为它不匹配空字符串,例如,`' '`(即一堆空格,不包括撇号,仅用于可视化)。现在它确实验证了以下内容:“这是一个前面有空格的字符串”,但是这种情况可以通过删除模式开头的“\s”来失效(尽管我保留它,因为它很有用)。我正在尝试我自己的解决方案,但被卡住了 - 您对非捕获组的使用 = 。我添加了一些其他特殊字符供我自己使用。感谢您的有益贡献! (2认同)