正则表达式 - 对于每一行:行以>开头直到<

时间:2015-11-26 13:15:11

标签: javascript regex

如何获取以(在行的开头)>开头的所有代码?直到< ?

这是一个例子:

>foo// comment

>bar i< // <---
>foobar< // comment > code example<fo}
  >  off < bad formated line

我需要这个:

bar i
foobar

3 个答案:

答案 0 :(得分:0)

请看这个片段:

&#13;
&#13;
var content = [
    ">foo// comment",
    "",
    ">bar i< // <---",
    ">foobar< // comment > code example<fo}",
    "  >  off < bad formated line"
];

content.filter(function(text) {
    var result = text.match(/^>[^<]*</);
    if (result) {
        document.write(result[0] + '<br>');
        document.write(result[0].slice(1, -1) + '<br><br>');
    }
});
&#13;
&#13;
&#13;

希望它有所帮助。

答案 1 :(得分:0)

我将接受华盛顿盖德斯的评论并在此解释:

^>[^<]*<
    表达式开头的
  • ^匹配行的开头
  • >是您想要在行开头找到的内容
  • [^<]*匹配的所有内容不是<字符零次或多次
  • <匹配您感兴趣的字符串末尾的<字符
  • ([^<]*)在下面的示例中,我添加了括号,表示正则表达式中的一个组。

这是javascript中的样子:

var myString = "your input goes here";
var myRegexp = /^>([^<]*<)/g;
var match = myRegexp.exec(myString);

您可以在W3Schools上找到有关如何使用RegExp对象的信息。

答案 2 :(得分:0)

一般正则表达式

/^>([^<\n]*)</gm

JavaScript代码

var re = /^>([^<\n]*)</gm; 
var str = '>foo// comment\n\n>bar i< // <---\n>foobar< // comment > code example<fo}\n  >  off < bad formated line';
var m;

while ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    // View your result using the m-variable.
    // eg m[0] etc.
    console.log(m[1]);
}

snipest

https://regex101.com/r/kM7nU3/1