我想使用regex来做以下事情:
1.正则表达式忽略html标记的每个内部
1.正则表达式忽略$...$
内部的所有内容,这些内容都是由Mathematica解析的
1.正则表达式会忽略$$...$$
内部的所有内容,这些内容会被Mathematica解析
1.正则表达式用那个词替换每个词
1.使用<.*?>(.*?)<.*?>
完成
1.与\$(.*?)\$
相反)
1.与\$\$(.*?)\$\$
相反
1.使用replace(/[A-Za-z0-9.]+,"<span class='invisible'>$1</span>")
完成
我正在努力结合这4个,因为没有“与”和“不”的运营商。
这里有一个“不”的解释:Regular expression to match a line that doesn't contain a word
这里有一个关于“和”的解释:Regular Expressions: Is there an AND operator?
我尝试了(?=([A-Za-z0-9.]+))(?=<.*?>(.*?)<.*?>)
,但它不起作用,我不知道如何将“不”应用于第2和第3项。
1条答案
按热度按时间3vpjnl9f1#
这个问题可能不太适合正则表达式。如果你设法让它工作,它可能会很复杂,而且将来很难让人阅读和理解正则表达式。
此外,使用正则表达式来处理相对复杂的语法很容易错过边缘情况。
例如,您最初的方法可能会遗漏以下内容:
相反,您可以考虑使用HTML解析库,然后对每个HTML节点的内容使用MathJax解析库。然后在MathJax没有处理的每个东西周围 Package 一个span。