php - 按空格分隔但忽略双引号字符串的正则表达式

标签 php regex

我知道 /[\s]+/' 用空格分割字符串。我正在尝试扩展它以忽略双引号内的任何空格。所以我希望 Hello World 被拆分,而不是 "Hello World"

preg_split('/[\s]+/', $string) 是我在 PHP 中使用的表达式。

最佳答案

您可以使用 PCRE 动词 (*SKIP)(*FAIL) 告诉正则表达式跳过表达式的特定部分。所以:

".*?"(*SKIP)(*FAIL)|\s+

将跳过双引号字符串。这是一个 regex101 演示:

https://regex101.com/r/eBP67C/1/

您可以在这里阅读更多相关信息,http://www.rexegg.com/regex-best-trick.html#pcrevariation .

关于php - 按空格分隔但忽略双引号字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264532/

相关文章:

java - 如何创建仅在特定位置匹配字符串的 Java 正则表达式模式?

php - Laravel Many to Many 名字转了一圈

php - 如何在一行中获取两个 select 语句的结果?

php - 彩票算法 - PHP - 数学看起来不错,但函数有效吗?

PHP MySQL 在同一个表中复制一行......使用主键和唯一键

php - 如何获取 Facebook 用户的 ID?

regex - 有没有办法优化这种灾难性正则表达式回溯的情况?

python - 匹配逗号或换行符但不能同时匹配两者的正则表达式

java - 用户输入作为正则表达式在 JAVA 中不起作用

javascript - Regex 适用于 RegExpr 但不适用于 Javascript。下划线和正斜杠之前的匹配