簡體   English   中英

正則表達式匹配不以其他字符串開頭的任何字符串

[英]Regex match any string that isn't preceded by another string

我很喜歡正則表達式,我一直在努力解決這個問題。 問題是我有一個字符串,並且要匹配沒有以“ ^”開頭的任何 “ +”或“-”。

示例字符串:

100x^-3+2x-10

上面的字符串將被數學格式化或讀為“ x --3冪的100倍,再加上x的兩倍,減去十”。

我想匹配“ 2x”之前的“ +”和“ 10”之前的“-”,而不是 “ 100x ^”之后的“-”。 我希望那不是那么令人困惑。 我嘗試了以下reg,但沒有運氣:

[^\^][\+|\-]

顯然我在某處缺少一個大細節。

您可以通過反轉字符串,然后與/[\\+\\-](?!=\\^)/進行匹配,來使用模擬回頭的古老技巧。

它可以在chrome控制台中正常運行,無論如何您都可以嘗試: "100x^-3+2x-10".match(/[^\\^$]([\\-|\\+])/ig) ,我建議您在Google Chrome瀏覽器的控制台中測試您的正則表達式。

如果需要用+-分開:

"100x^-3+2x-10".replace(/([^^])[-+]/g,'$1@').split('@')
Output: ["100x^-3", "2x", "10"]

我將@用作臨時字符(但是您可以使用一組獨特的字符)來標記沒有以^為前綴的符號,然后用所選的臨時字符安全地分開。

試一下:

/(?<!\^)[+-]/

暫無
暫無

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

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