JavaScript Regex在最后一次出现>之后获取所有内容

时间:2018-04-03 21:02:20

标签: javascript regex

我试图在最后一次出现>之后获取所有字符页面上的元素的符号。我无法知道有多少>将在那里,也可以在结果集中包含特殊字符。

例如: 0级> 1级> 2级> 3级,&虚拟文本

到目前为止,我已经获得了这个正则表达式:

([^\>]+$)

但这是在>之后立即占领空间。我没有空间就需要它。

希望它有点简单我忽略了......谢谢!

4 个答案:

答案 0 :(得分:1)

您应该使用lastIndexOf来获取最后发生的>,然后您可以使用substring来获取所有内容



const str = 'Level 0 > Level 1 > level 2 > Level 3, & dummy text'

let idx = str.lastIndexOf('>')

console.log(str.substring(idx + 1).trim())




答案 1 :(得分:0)

您可以要求匹配不要以空格开头,将“至少一个非>字符”([^>]+)替换为“非>非空格”字符后跟任意数量的非>字符“:

/[^> ][^>]*$/

[^>\s]会覆盖更多种类的空格,例如标签,如果您有兴趣的话。)

const text = 'Level 0 > Level 1 > level 2 > Level 3, & dummy text';

console.log(/[^> ][^>]*$/.exec(text));

如果分隔符始终被空格所包围,例如,只搜索' > '的最后一个实例会更有效。

答案 2 :(得分:0)

如果字符/\s*([^\>]+$)/g后面有空格,请使用此'>'

const regex = /\s*([^\>]+$)/g;
let str = ` Level 0 > Level 1 > level 2 > Level 3, & dummy text`;

let match = regex.exec(str);
console.log(match[1]);

我希望它有所帮助。

答案 3 :(得分:0)

试试这个

var str = "Level 0 > Level 1 > level 2 > Level 3, & dummy text";
var regx = /.+\s>\s/g;
var res = str.replace(regx, "");
console.log(res);