2017-07-10 4 views
-1

REGEXを使用して<>タグの文字列を表示しようとしました。私はいくつかの異なるstackoverflowページや他のものを見てきて、すべてのチュートリアルに従って、私が望むものを達成することはできません。私は、ログファイルを解析し、タグを一致させ、タグを空白で置き換え、タグの間に何が表示され、残りのファイルは表示しないようにしたい。私は通常、削除されるタグで終わるが、ファイルの残りの部分(置換を使用して)、または私は含まれているstatmentタグ全体に一致する。私が試した何ログファイルを読み取っているときに<>タグを削除する

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"); 

結果:ディスプレイ<>タグと私は、ログファイルでは

を望むもの私はまた、良いテキスト、良いテキスト、良いテキストなどのような異なるテキストのタグを持っている。だから、私はホスト名タグに一致する方法を見つけようとしていて、そのタグの間にテキストだけを表示しようとしている。
誰かが私が大いに感謝するのを助けることができたら。

+0

gは 'いくつかのテキストとより多くのテキストです。このテキストは私が望むものですが、前後にはありません。' 'このテキストは私が欲しいものです。 – Nope

+3

[mcve]と期待される結果を提供する – charlietfl

+0

Fran〜はい。私はこれがおそらく単純だと知っていますが、私はいくつかの未知の理由でこれに固執しています。私は、タグを見つけて.replace()を使ってタグを削除し、それらの間にあるものだけをグローバルにファイルに表示するために、.match()を使用しなければならないと思っていました。 これは私が望むものです user8284691

答えて

0

私はinputを想定しています。ここ

これはあなたがタグ

var matchData = $(input).text();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

これはうまくいきますが、そのときに必要でないファイルの部分については、<>とのすべてのインスタンスが削除されます。ログファイルには、私もそれらの中に異なるテキストのタグがあります... 良いテキスト良いテキスト良いテキストなどだから、私はホスト名タグとのみ一致させ、そのタグの間にテキストだけを表示する方法を見つけようとしています。 – user8284691

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"; 
} 
+0

^私は以前に試したことがありましたが、まったく正しいことはありませんでした。しかし、それは今、全員の助けをいただきありがとうございます。 – user8284691

関連する問題