使用RegEx在javascript中拆分字符串
Splitting string in javascript using RegEx
尝试使用RegEx
拆分以下字符串:
"C=US,ST=NY,O=GOOGLE', INC"
其目的是使O=GOOGLE', INC
在逗号上拆分后保持完整。
如果可以不进行拆分,只需使用类似这样的正则表达式即可捕获字段数据
edit-修改为匹配伪造的转义。
# /(?:^|,)((?:[^,'']*(?:'',|'')?)+)(?:(?=,)|$)/
(?: ^ | , ) # Leading comma or BOL
( # (1 start), Field data
(?:
[^,'']*
(?: '', | '' )?
)+
) # (1 end)
(?: # Lookahead, comma or EOL
(?= , )
| $
)
输出>>
** Grp 0 - ( pos 0 , len 4 )
C=US
** Grp 1 - ( pos 0 , len 4 )
C=US
--------------
** Grp 0 - ( pos 4 , len 6 )
,ST=NY
** Grp 1 - ( pos 5 , len 5 )
ST=NY
--------------
** Grp 0 - ( pos 10 , len 15 )
,O=GOOGLE', INC
** Grp 1 - ( pos 11 , len 14 )
O=GOOGLE', INC
您的数据看起来是相当可靠的形式:
foo=bar,spic=span,a=bob'',fred
即,成对的key=val数据,数据中有转义逗号。因此,如果数据中的转义逗号仅为,那么您可以在regexp中使用简单的"key="先行查找。假设密钥总是在首都,那么这就起作用了:
s = "C=US,ST=NY,O=GOOGLE', INC"
s.split(/,(?=[A-Z]*=)/)
如果后面跟一些大写字母和等号,就用逗号分开。
这会给你
["C=US", "ST=NY", "O=GOOGLE, INC"]
相关文章:
- 通过跳过拆分字符在 javascript 中拆分字符串
- jQuery字符串使用split()方法在空格后拆分字符串
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何在JavaScript中按大小写拆分字符串
- 根据上次出现的、和_拆分字符串
- 拆分字符串数组(JavaScript)后未定义
- 在空行上拆分字符串
- 使用Regex拆分字符串,保留分隔符
- 使用jquery或regex,带点但不带点的拆分字符串位于单引号中
- Nashorn和Rhino:使用空白regexp拆分字符串
- Javascript:不使用.split()方法拆分字符串
- 如何使用正则表达式在javascript中拆分字符串
- Javascript在第一个空格上拆分字符串
- 首次出现时拆分字符串
- 如何使用正则表达式(.match())拆分字符串
- 使用正则表达式拆分字符串
- Javascript:拆分字符串,但仅使用 1 个结果
- Angularjs-拆分字符串问题
- angularjs在拆分字符串时解析语法错误
- 基于javascript中的AND OR逻辑拆分字符串