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
Regex extract text between pattern
提问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
一些英文文本