php - 如果单词长于 2 个字符,则在空格上拆分字符串
问题描述
如果单词长于 2 个字符,我很难找到在空格上拆分字符串的确切公式。
$str = 'test 1 vitamin d3 test 2';
$str_parts = preg_split('#(?:\s+|(vitamin [cde]))#', $str, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
var_export($str_parts);
理想的输出是:
['test 1', 'vitamin d3', 'test 2']
解决方案
您可以在以下位置使用此正则表达式split
:
\h+(?=\w{3})
如果后面有一个至少包含 3 个字符的单词使用正向前瞻,则匹配 1+ 个空格。
代码:
$str = 'test 1 vitamin d3 test 2';
$str_parts = preg_split('/\h+(?=\w{3})/', $str);
print_r($str_parts);
输出:
Array
(
[0] => test 1
[1] => vitamin d3
[2] => test 2
)
推荐阅读
- c# - 代码假装变量不存在
- html - 如何在 Weebly 嵌入代码中更改字体大小?
- javascript - 无法为particle.js div 设置动画
- elasticsearch - 除非您使标准更严格,否则 Elasticsearch MLT 查询不会返回任何结果
- rust - 在 macOS 上编译 Rust 应用程序时,如何解决“找不到 -lgfortran 的库”?
- java - java中toString方法返回值的问题
- selenium - 在 lambda 上调用 screenshot_as_base64 时出错,而 MacOS 正在工作
- excel - Excel VBA webscrape,我如何获得跨度值?
- filesystems - 如何在 dexie.js 中为文件系统建模?
- image - 调整从变焦相机拍摄的图像大小