删除<>阅读日志文件

时间:2017-07-10 16:03:45

标签: javascript regex

我一直在尝试使用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;标签和我想要的东西

在日志文件中,我也有不同文本的标签...例如好文本,好文本,好文本等等。所以,我试图找到如何只匹配主机名标签,并只显示标签之间的文字 如果有人可以提供帮助,我会非常感激。

2 个答案:

答案 0 :(得分:0)

请试试这个

这里我假设input是你需要消除标签的字符串化数据

&#13;
&#13;
var matchData = $(input).text();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#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";
}