Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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
Php 正则表达式:如果一个句子有超过3个字符,则获取它的第一个单词_Php_Regex - Fatal编程技术网

Php 正则表达式:如果一个句子有超过3个字符,则获取它的第一个单词

Php 正则表达式:如果一个句子有超过3个字符,则获取它的第一个单词,php,regex,Php,Regex,我需要一个正则表达式,如果一个句子有超过3个字符或完整的句子,它可以得到第一个单词 例如: Hello world -> Hello World Eat jam -> Eat 谢谢 使用此正则表达式^\s*?\w{3,}\b.+如果第一个单词少于或等于3个字符,您的示例将使用第一个单词,否则将使用完整的句子。但对于这个要求,您可以使用 ^[a-zA-Z]{1,3}(?![a-zA-Z])|^.*$ 快速PowerShell测试: PS> $re = '^[a-zA-Z]{3

我需要一个正则表达式,如果一个句子有超过3个字符或完整的句子,它可以得到第一个单词

例如:

Hello world -> Hello World
Eat jam -> Eat

谢谢

使用此正则表达式
^\s*?\w{3,}\b.+

如果第一个单词少于或等于3个字符,您的示例将使用第一个单词,否则将使用完整的句子。但对于这个要求,您可以使用

^[a-zA-Z]{1,3}(?![a-zA-Z])|^.*$
快速PowerShell测试:

PS> $re = '^[a-zA-Z]{3}(?![a-zA-Z])|^.*$'
PS> 'Hello world','Eat jam' |%{$_-match $re|Out-null;$Matches}

Name                           Value
----                           -----
0                              Hello world
0                              Eat

它必须是正则表达式吗?Either?像一个空字符串一样可以吗?试试这个:/^\s*(\w{3,})\b/如果不是三个字母,则完整的句子。因为在许多编程语言中,
\w
是一种模糊地表示标识符中可用字符概念的东西,但在处理文本时几乎没有用处。或者你的单词中经常有下划线或数字吗<代码>\b是根据
\w
定义的,因此它同样无用。