dragon321723
2017-04-06 19:49
浏览 725
已采纳

正则表达式按空格分割但忽略双引号字符串

I know /[\s]+/' splits a string by spaces. I am trying to expand this to ignore any spaces within double quotes. So I want Hello World to be split, but not "Hello World"

preg_split('/[\s]+/', $string) is the expression I am using in PHP.

图片转代码服务由CSDN问答提供 功能建议

我知道 / [\ s] + /'用空格分割字符串。 我试图扩展它以忽略双引号内的任何空格。 所以我希望 Hello World 被拆分,但不能“Hello World”

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douzhenao6515 2017-04-07 13:03
    已采纳

    You can use the PCRE verbs (*SKIP)(*FAIL) to tell the regex to skip specific parts of an expression. So:

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

    will skip double quoted strings. Here's a regex101 demo:

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

    You can read more about this here, http://www.rexegg.com/regex-best-trick.html#pcrevariation.

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题