【问题标题】:How to match everything except specified characters and strings? Regex如何匹配除指定字符和字符串之外的所有内容?正则表达式
【发布时间】:2018-04-25 10:29:52
【问题描述】:

我正在构建一个绘图抽屉,目前正在研究数学表达式解析器。我已经完成了大部分工作,但我一直坚持在解析输入文本之前清除它。我现在想要实现的是摆脱未经许可的字符。

例如,在此文本中:

5ax+4asxxv+sdflog10aloga(132*43)sin(132)

我想匹配所有不是+,-,*,/,^,(,),ln,log,@9876534 ,cos,tan,cot,arcsin,arccos,... 并将它们替换为""

所以输出是

5x+4xx+log10log(132*43)sin(132)

我需要正则表达式方面的帮助。

空格无关紧要,因为我事先清除了它们。

【问题讨论】:

    标签: javascript regex match


    【解决方案1】:

    有点棘手 - 至少我想不出一个简单的方法来完成你的要求。正则表达式会变得很可怕。

    所以我反其道而行之 - 匹配您想要保留的内容,然后将其重新组合在一起。

    正则表达式:

    [\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(''));

    【讨论】:

    • 哇,我从来没有这样想过。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多