我一直在尝试使用REGEX在<>之间显示字符串标签。我查看了几个不同的stackoverflow页面,以及其他页面,并按照所有教程,我无法实现我想要的。我希望能够解析日志文件,匹配标记,用空格替换标记,显示标记之间的内容而不是文件的其余部分。我通常最终会删除标签,但文件的其余部分(使用替换),或者我匹配包含的整个标准标签。
我尝试了什么:
var reg = /(.*<hostname>)(.*)(<\/hostname>.*)/gi;
var match = input.replace("Hostname", " ").match(reg);
结果:不是fcn
var regex = /(<([^>]+)>)/ig
var match = input.replace(regex, "");
refulst:只取出标签并显示文件的其余部分。
var regex = /(.*<hostname>)(.*)(<\/hostname>.*)/gi;
var text = inputFile.replace(regex, "$2");
结果:显示标签之间的内容,以及文件其余部分中的内容
var regex = /(.*<hostname>)(.*)(<\/hostname>.*)/gi;
var text = inputFile.match(regex, "gi");
结果:显示&lt;&gt;标签和我想要的东西
在日志文件中,我也有不同文本的标签...例如好文本,好文本,好文本等等。所以,我试图找到如何只匹配主机名标签,并只显示标签之间的文字 如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:0)
请试试这个
这里我假设input
是你需要消除标签的字符串化数据
var matchData = $(input).text();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:0)
没关系,我得到了答案:
function regexFind(){
var inputLog = document.getElementById("logFileData").value;
var re = /(<hostname>|hostname\s=\s)(.*)((<\/hostname>|\.).*)/gi; //var re= /(<hostname>|hostname\s=\s)(.*)(<\/hostname>.*|\.)/gi;
var text = inputLog.match(re)//, '$2');\
console.log(text);
for (var i = 0; i < text.length; i++) {
var newText = text[i].replace(re, '$2');
console.log(newText);
document.getElementById("newData").value += newText + "\n";
}