pcre正则表达式匹配前两个单词,数字

Bor*_*rov 5 php regex string pcre

我需要一个正则表达式来匹配字符串中的前两个单词(它们可能包含字母、数字、逗号和其他标点符号,但不包含空格、制表符或新行)。我的解决方案是,([^\s]+\s+){2}但如果它匹配以下内容:'123 word' *in '123 word, hello'*,它不适用于只有两个单词且后面没有空格的字符串。

这项任务的正确正则表达式是什么?

Vyk*_*tor 5

你几乎是对的:

(\S+\s+\S+)
Run Code Online (Sandbox Code Playgroud)

假设您不需要对使用哪些字符进行更强的控制。

如果您需要匹配两个单词或仅匹配一个单词,您可以使用其中之一:

(\S+\s+\S|\S+)
(\S+(?:\s+\S+)?)
Run Code Online (Sandbox Code Playgroud)