2016-06-24 13 views
0

私は正規表現で次のパターン置き換えるしようとしています:パターンをregexに置き換えるには、一般的な方法を使用しますか?

"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 

を、私は次の出力にそれをしたい:私は式は値以来の一般的な方法であることにしたいしかし

1,"A green door",12.50,"green" 
1,"A green door",12.50,"green" 
1,"A green door",12.50,"green" 
1,"A green door",12.50,"green" 

必ずしも同じではないかもしれませんが、決して変わらないのはパターンだけです。しかし、私はこのような別の表現を試しています:"(.*?)":

しかし、間違った結果が得られます。誰かが私を助けることができれば、私はそれを高く評価するでしょう。

+0

あなたがしようとしていることのいくつかを投稿することができます私たちはより良いあなたを導くことができますか?むしろあなたが試したことを見ることなく答えを出すだけではありません。 (宿題の場合) – Chris

+0

はい、私は '[^:] *、' '( "(。+?)" :) |( "(。+?)\")'といくつかの他のパタ​​ーンは、正確に2つの二重引用符+スペースで終わらなければならないというパターンであることを発見しました。しかし、私は正規表現ではかなり新しいので、このパターンを式に入力できません。 @Duck – user3116949

+0

自分で別の回答を投稿するのではなく、与えられた2点をチェックしてください。また、[Regex 101](https://regex101.com/)で、次回非常に役立つビジュアルデバッガをチェックしてください。がんばろう! – Chris

答えて

1

あなたはそれを成し遂げるためにString#splitArray#mapArray#joinメソッドを使用することができます。

var str = `"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green"`; 
 

 
var res = str.split('\n').map(function(v) { 
 
    return v.split(',').map(function(v1) { 
 
    return v1.split(':')[1].trim(); 
 
    }).join(); 
 
}); 
 

 
console.log(res);


それともString#replace方法

var str = `"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green" 
 
"id": 1,"name": "A green door","price": 12.50,"tags": "green"`; 
 

 
var res = str.replace(/"\w+":\s*(?=.*?(?:[,|\n]|$))/g, '') 
 

 
console.log(res);

2

彼女を使用してあなたはまた、バックスラッシュは文字列内のエスケープを許可したい場合は、我々はもう少し派手得ることができます

s/"[^"]*"\s*:\s*//g 

:eは、かなりシンプルなソリューションです

s/"(?:[^"\\]|\\.)*"\s*:\s*//g 
関連する問題