Regex 正则表达式-查找所有3个字母的单词-意外结果

Regex 正则表达式-查找所有3个字母的单词-意外结果,regex,Regex,使用regexpal.com练习我的正则表达式。我决定简单地开始,但遇到了一个问题 假设你想找到所有3个字母的单词 \s\w{3}\s \s-空间 \w字字符 {3} -3且仅前一个字符的3个 \ 如果我有两个三个字母的单词彼此相邻,那么“示例”和“仅选择第一个”。我认为在正则表达式找到匹配项后,它会返回一个字符并开始搜索下一个匹配字符串。(在这种情况下,它将“查找”两者”和“&”the) 也可以使用 \b==>assert position at a word boundary (^\

使用regexpal.com练习我的正则表达式。我决定简单地开始,但遇到了一个问题

假设你想找到所有3个字母的单词

\s\w{3}\s
\s-空间

\w字字符

{3} -3且仅前一个字符的3个

\

如果我有两个三个字母的单词彼此相邻,那么“示例”和“仅选择第一个”。我认为在正则表达式找到匹配项后,它会返回一个字符并开始搜索下一个匹配字符串。(在这种情况下,它将“查找”两者”和“&”the)

也可以使用

\b==>assert position at a word boundary (^\w|\w$|\W\w|\w\W)


(?:^|)(?只需使用单词边界:
\b\w{3}\b
您的正则表达式正在“吃”空格。使用
\b
而不是
\s
@anubhava-这很有效-但是现在它在括号中捕获了3个字母单词。但是为什么它不应该在括号中捕获单词呢?@anubhava-Thx。我明白了。但是Thx用于\b。它在几乎每个用例中都有效。使用
\b
会更好,因为它在开始时也匹配很有趣,regexpal没有正确解释(?@Mayo:regexpal只知道javascript正则表达式语法,所以不支持lookbehind。
(?@CasimiretHippolyte。谢谢。我想知道这是否是regexpal的事情。
\b\w{3}\b
\b==>assert position at a word boundary (^\w|\w$|\W\w|\w\W)
(?:^|(?<=\s))\w{3}(?=\s|$)