![](/img/trans.png)
[英]Splitting a string using a JavaScript regex but keeping the delimiter?
[英]Splitting string in javascript using RegEx
嘗試使用RegEx
分割以下字符串:
"C=US,ST=NY,O=GOOGLE\, INC"
目的是讓O=GOOGLE\\, INC
在使用逗號分割后保持完整。
如果可以不拆分就可以使用這樣的正則表達式捕獲字段數據。
編輯 -修改以匹配虛假轉義。
# /(?:^|,)((?:[^,\\]*(?:\\,|\\)?)+)(?:(?=,)|$)/
(?: ^ | , ) # 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
您的數據看起來將相當可靠地具有以下形式:
富=巴,穗=跨度,A =擺錘\\,弗雷
也就是說,成對的key = val數據,數據中帶有轉義的逗號。 因此,如果轉義的逗號僅出現在數據中,那么您可以將“ key =”使用簡單的超前查詢作為正則表達式的一部分。 假設密鑰始終在大寫字母中,那么它將起作用:
s = "C=US,ST=NY,O=GOOGLE\, INC"
s.split(/,(?=[A-Z]*=)/)
即,如果用逗號分隔,則在其后跟一些大寫字母和等號。
這會給你
["C=US", "ST=NY", "O=GOOGLE, INC"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.