[英]How to match everything except specified characters and strings? Regex
我正在構建一個圖形抽屜,目前正在使用數學表達式解析器。 我已經完成了大部分工作,但是在解析輸入文本之前我一直堅持清除輸入文本。 我現在想要實現的是擺脫不被允許的字符。
例如,在此文本中:
5ax + 4asxxv + sdflog10aloga(132 * 43)sin(132)
我想匹配不是+
, -
, *
, /
^
, (
)
, ln
, log
, sin
, cos
, tan
, cot
, arcsin
, arccos
,...等所有內容,並將其替換為""
。
這樣的輸出是
5x + 4xx + log10log(132 * 43)sin(132)
我需要有關正則表達式的幫助。
空間無所謂,因為我事先已將其清除。
有點棘手-至少我想不出一種簡單的方法來完成您的要求。 正則表達式會變得可怕。
所以我反過來做了-匹配您想要保留的內容,然后放回原處。
正則表達式:
[\d+*/^()x-]|ln|log|(?:arc)?(?:sin|cos)|tan|cot
編碼:
var re = /[\\d+*/^()x-]|ln|log|(?:arc)?(?:sin|cos)|tan|cot/g, text = '5ax+4asxxv+sdflog10aloga(132*43)sin(132)arccos(1)'; console.log(text.match(re).join(''));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.