簡體   English   中英

匹配條件RegEx

[英]Match a condition RegEx

我需要能夠刪除字符串中的條件,這里是:

(("${Operation}" == "Fixed") && ("-" == "-"))

我希望能夠將"${Operation}" == "Fixed"替換為""或其中包含$ {}的任何東西。 換句話說,如果條件左側有$ {},我想完全擺脫這個條件。

這將匹配它

\([^(]*\${.*?}[^)]*\)

在此輸入圖像描述

一般來說 ,正則表達式不是正確的方法。 有許多案例都是有效的JavaScript語法,但這些案例並不適合正則表達式。 但是,這是一種方法:

var code = '(("${Operation}" == "Fixed") && (thing1 == thing2))';
code = code.replace(/"[^"]*\$\{[^}]*\}[^"]*"\s*==\s*"[^"]*"/, 'true');

那只處理雙引號。 如果需要處理兩種類型的引號,表達式將更復雜。 如果您需要處理兩種類型的引號並且您的字符串可能包含引號,那么正則表達式實際上不起作用。

如果你能想出一個不同的方法來解決這個問題,那么你應該這樣做。 例如 - 字符串來自哪里? 你能以不同的格式獲得數據嗎?

此外,聽起來您正在設置此字符串以調用eval 如果它包含任何類型的用戶輸入,這是一個壞主意。

有了這個正則表達式/ /^\\(?[^)&]*?\\${.*\\)/我成功匹配了兩個第一行而不是另外兩個。 這是你想要的?

((“$ {Operation}”==“Fixed”)&&(“ - ”==“ - ”))

(“$ {Operation}”==“Fixed”))

((“$ Operation”==“Fixed”)&&(“ - ”==“ - ”))

((“ - ”==“ - ”)&&(“$ {Operation}”==“Fixed”))

有意思的是,我想出了/ /\\(("?\\${.*}"?[^)]*)\\)/g

'(("${Operation}" == "Fixed") && ("-" == "-"))'.replace(/\(("?\${.*}"?[^)]*)\)/g, '("")')

這可能有太多* ,但互聯網編碼問題似乎總是有點大開。

注意:這就像在特殊的RegExp角色中進行測試一樣,很有趣!

保持我寫的正則表達式下沉船唯一的事情是[^)]*任何事情都不是結束)

暫無
暫無

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

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