我的要求是:
例如:
$string = "I am using php regular expressions";
输出:
$out = ["I", "am", "using", "php", "regular"]; #expected output
我努力解决这个问题:
preg_split("/\s+/",$string);
哪个用空格拆分字符串,但我想要前面提到的输出。
答案 0 :(得分:2)
...(1)以char开头,以空格结束,(2)以。开头 空间和空间结束?
首先,您的要求应该真正转移到问题背景中。尝试找到更好的标题。但是,根据第二个要求,下面的输入字符串不应该匹配:
string(5) " I\nam"
但这应该:
string(3) " I "
当前接受的答案不包括哪些内容,如果标题中的 char ,则表示英文字母中的字母,这可能是一个解决方案:
preg_match_all('~(?i)\b[a-z]\S*(?=\h)~', $string, $matches);
否则请使用\S+(?=\h)
故障:
(?i)
启用不区分大小写的标记\S
匹配非空白字符(?=\h)
积极向前看。如果跟随字符是水平空格,则断言