簡體   English   中英

JavaScript String.split(): Split by ; 前面沒有反斜杠?

[英]JavaScript String.split(): Split by ; that is NOT preceded by a Backslash?

我需要按每個分割一個字符串; 未轉義的(前面是 0、2、4、6 等反斜杠)。

關於這個問題已經有幾個線程,但我沒有找到任何對我有用的東西。 我嘗試的每個正則表達式要么給出錯誤,要么不以任何有效的分隔符拆分字符串,或者根本不拆分它。

"statement1(); statement2('\;');".split(/(\\.;[^;])+/g)

這例如剛剛返回 [ 'statement1(); 語句 2(\\';\\');' ]。 還有其他想法嗎?

您可以使用后視斷言解決此問題:

/(?<=[^\\]);/

應該做你需要的。 它說匹配; 前面是一個不是\\的字符。

在另一種編程語言中,我會使用否定后視斷言,但只有最新版本的 JavaScript 支持它,因此將其編寫為肯定后視斷言 istead 更安全,如上所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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