我正在尝试使用正则表达式来接受<和>作为我的外部分隔符,抓住它们之间的所有内容。
所以像这样的内容
< tfdsfa >
应该抓住。
我是否必须逃避&lt;和&gt;人物什么的?
我的脚本生成的正则表达式:
/<[^(>)]*>/g
文件中的代码:
data.method.highlight = function() {
var x = data.syntax,
text = data.$.span.html();
for (var i=0, len = x.length; i < len; i++) {
var rx;
if (x[i].range) {
rx = new RegExp(x[i].tag[0] + "[^(" + x[i].tag[1] + ")]*" + x[i].tag[1], "g");
console.log(rx);
}
else {
var temprx = x[i].tag[0];
for (var z = 1; z < x[i].tag.length; z++) {
temprx += "|" + x[i].tag[z];
}
rx = new RegExp(temprx, "g");
}
text = text.replace(rx,function (match) {
console.log("looping - range");
return '<span class="' + x[i].class.default + '">' + match + '</span>';
});
data.$.span.html(text);
}
};
答案 0 :(得分:20)
<
和>
都不是正则表达式中的元字符。
这对我有用:
'<foo> and <bar>'.match(/<[^>]*>/g); // ["<foo>", "<bar>"]
答案 1 :(得分:-1)
您可能遇到问题,因为您尝试将结果插入到HTML和浏览器中并认为&#39;它是一个无效的HTML标记,例如<blablabla>
。