如何匹配两个单词之间的字符串,并为字符串中所有两个定义的单词重复此模式,正则表达式?
How to match string between two words, and repeat this pattern for all two defined words in the string, Regex?
所以我想从 HTML 中提取 MathML。例如,我有这个字符串:
<p>Task: </p><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math><p> find </p><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math><p>.</p>
我要配
<math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math>
和
<math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math>
我怎样才能做到这一点。
我试过这个表达式 /(<math)(.*)(math>)/g
但它匹配第一个 <math
和最后 math>
个单词之间的所有内容。
默认情况下,量词本质上是greedy
,您只需要在*
之后放置?
使其成为lazy
const str = `<p>Task: </p><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math><p> find </p><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math><p>.</p>`;
const regex = /(<math)(.*?)(math>)/g;
const result = str.match(regex);
console.log(result.length);
console.log(result);
所以我想从 HTML 中提取 MathML。例如,我有这个字符串:
<p>Task: </p><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math><p> find </p><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math><p>.</p>
我要配
<math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math>
和
<math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math>
我怎样才能做到这一点。
我试过这个表达式 /(<math)(.*)(math>)/g
但它匹配第一个 <math
和最后 math>
个单词之间的所有内容。
默认情况下,量词本质上是greedy
,您只需要在*
?
使其成为lazy
const str = `<p>Task: </p><math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>5</mn></mrow></math><p> find </p><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>x</mi><mn>2</mn></msup></math><p>.</p>`;
const regex = /(<math)(.*?)(math>)/g;
const result = str.match(regex);
console.log(result.length);
console.log(result);