Javascript 正则表达式提取模式之间的文本

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6376790/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 21:28:57  来源:igfitidea点击:

Regex extract text between pattern

javascriptregexpreg-match

提问by YeppThat'sMe

i need your help with a regex in javascript.

我需要你的 javascript 正则表达式帮助。

I've got an a-tag with follow pattern

我有一个带有跟随模式的 a-tag

<a href='#'>
  <!--:de-->some german text<!--:--><!--:en-->some english text<!--:-->
</a>

So, now i'm searching for a regular expression what extract me each part

所以,现在我正在寻找一个正则表达式来提取我的每个部分

 1. <!--:de-->some german text<!--:-->
 2. <!--:en-->some german text<!--:-->

Thanks VERY much in advance

首先十分感谢

回答by The Mask

Try this:

尝试这个:

var str = '<!--:de-->some german text<!--:--><!--:en-->some english text<!--:-->'; 
var match =  str.match(/de-->([^<]+).+?en[^>]+>([^<]+)/i);
var textInDe = match[1]; 
var textInEn = match[2]; 

回答by Adithya Surampudi

If you are expecting more than 2 parts, i would recommend you split the string by the delimiter

如果您期望超过 2 个部分,我建议您按分隔符拆分字符串

var str="<!--:de-->some german text<!--:--><!--:en-->some english text<!--:--><!--:fr-->some french text<!--:-->";

var col_array=str.split("<!--:-->");
var part_num=0;
while (part_num < col_array.length)
{
 document.write(col_array[part_num]+"<br>");
 part_num+=1;
}

回答by anubhava

Try this Javascript code:

试试这个 Javascript 代码:

var ger = /<!--:de-->.*?<!--:-->/g;
document.writeln(html.match(ger).map(function (s) { return s; }));

var eng = /<!--:en-->.*?<!--:-->/g;
document.writeln(html.match(eng).map(function (s) { return s; }));

OUTPUT

输出

some german text

一些德文

some english text

一些英文文本