【发布时间】:2015-10-23 13:35:36
【问题描述】:
我想编写正则表达式,可以通过空格分割指定的字符串,这些字符串没有被一些特殊符号(引号和括号)包裹。对于以下字符串:
127.0.0.1 - - [16/Jun/2015:01:21:01 +0300] "GET /status.xsl HTTP/1.1"
我需要得到以下答案:
- 127.0.0.1
- -
-
-
- 16/Jun/2015:01:21:01 +0300
- GET /status.xsl HTTP/1.1
匹配所有带引号的字符串很简单:"([^"]+)",括号\[([^\]]+)\]也一样
匹配所有非空格字符很简单:\S+
因为这些情况,我很困惑。是否可以使用一个正则表达式执行此类操作?或者我应该使用不同的方法来执行此操作?
【问题讨论】:
-
你不能使用 csv 解析器吗?
-
是否需要转义括号?即,您是否曾经有过包含“[” 的字符串
-
你不能只匹配字符串而不是拆分吗?这样会更容易。
-
通过捕获组使用正则表达式真的很容易。但是,模式会很长。
-
@TimB 不,不需要转义括号或引号
标签: javascript regex string