正则小白求教一个正则表达式…

2018-05-25 14:57:14 +08:00
 praynise
请问如何按照空格分割一串字符,但是引号内的空格不在分割范围内?
例如:cmd="df -h" login=true 想分割成 cmd="df -h" 和 login=true 而不想分割成 cmd="df 和 -h" 和 login=true,谢谢大家
2214 次点击
所在节点    程序员
7 条回复
runnerlee
2018-05-25 15:07:04 +08:00
```
/[a-zA-Z0-9]+=[\'"]?[^'"]*[\'"]?/
```

这样可以不?
LadyChunsKite
2018-05-25 15:09:26 +08:00
不用正则,写代码:一个空格前面有偶数个引号,就可以拆分。奇数个引号,就不拆分。
LadyChunsKite
2018-05-25 15:12:05 +08:00
@runnerlee

文本假如是这样的,你的方法就挂了,你对引号的判断,至少要是同时出现,或者都不出现:

cmd="df -h" login=true cmd="df -h" login=true
qfdk
2018-05-25 15:12:12 +08:00
split('" ') 就好了按照双引号 空格分割
runnerlee
2018-05-25 15:20:06 +08:00
@LadyChunsKite 的确, 感谢指出
bkqzjr
2018-05-25 15:39:48 +08:00
/ (?!.+")/g
faketemp
2018-05-26 00:42:30 +08:00
(.+?)(?<=”)\s(.+?)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/457731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX