簡體   English   中英

使用RegEx在JavaScript中分割字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM