您好,我需要匹配字符串中的數學模塊。數學模塊以$$開始,以$$結束。可以有任意數量的數學塊。定期預期匹配數學模塊
例如輸入可以關注一下:
abcd... asdfasdf
$$
math expression
$$
<another set of random words>
$$
expression
$$
...
什麼是正確的正則表達式只匹配的數學表達式?
謝謝。
您好,我需要匹配字符串中的數學模塊。數學模塊以$$開始,以$$結束。可以有任意數量的數學塊。定期預期匹配數學模塊
例如輸入可以關注一下:
abcd... asdfasdf
$$
math expression
$$
<another set of random words>
$$
expression
$$
...
什麼是正確的正則表達式只匹配的數學表達式?
謝謝。
我不知道什麼是打字稿,但是我查了一下它就像是javascript。你爲什麼不使用新的RegExp()? 像新的RegExp(/^\$\$.+\$\$$/ g).exec(你的str) Char。+會檢測任何字符等等,直到它在最後找到$爲止。你可以進入你的具體病情此匹配
假設每一奇數$$
開始一個數學模式塊,每個偶數一個結束前一個塊,你可以只劈在$$
串並採取奇數組的元素:
> str=`abcd... asdfasdf
$$
math expression
$$
<another set of random words>
$$
expression
$$`
> str.split("$$").filter((s, index) => index % 2 === 1)
Array [ " math expression ", " expression " ]
陣列仍包含了前端和後端的空間 - 你可以用String.trim
擺脫他們的。
我認爲分割對我來說是最合適的選擇。謝謝。 – Prasad
你可以嘗試/\$\$((?:\$[^\$]|[^\$])+)\$\$/g
,這將匹配$$和$$之間的任何內容,包括單個$。
let text = document.body.innerHTML;
let regex = /\$\$((?:\$[^\$]|[^\$])+)\$\$/g,
match;
while((match = regex.exec(text)) != null) {
console.log(match[1].trim());
}
abcd... asdfasdf
$$
math expression
$$
another set of random words
$$
expression
$$
$$
expression with a $ symbol
$$
喜歡[此](https://regex101.com/r/sNmGqD/1)? – Gurman
@Gurman這可能是一個問題,在$ $$中找到一個'$'。 –
@TomFenech你是對的。我只是假定表達式塊中不會有'$'。 – Gurman