[英]Regex to match contents of a string preceded by particular string and ended with a particular string
[英]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.