2012-05-10 6 views
1

とブラケットとブラケットを除外する私はこの文字列を得た:正規表現は - 特別なキー

[[Fil:Hoganas_hamn.jpg|miniatyr|Höganäs Hamn.]] [[Fil:Hoganas_hamn_kvickbadet.jpg|miniatyr|Höganäs Hamn - Kvickbadet.]] [[Fil:Höganäs Jefast ny redigerad-1.jpg|miniatyr|Jefasthuset sett från väster med en del av den nya bryggan vid Kvickbadet.]] '''Höganäs''' är en [[tätort]] och [[centralort]] i [[Höganäs kommun]] i [[Skåne län]]. Höganäs blev stad 1936. Ursprungligen är Höganäs ett [[fiskeläge]] kring vilket en [[gruvindustri]] utvecklades för brytning av [[kol (bränsle)|kol]] och [[lera|leror]] för tillverkning av [[eldfast]] [[keramik]] ([[Höganäskrus]]). Gruvindustrin är numera nedlagd. 

私は[[FIL:+ダイナミック語]]のすべてのインスタンス除外したいと、すべての[[、]]ではなく、をその中に「FIL:」のない[[word]]しかないときは、単語自体を除外します。

私はそれのための正規表現をやり始めましたが、私は立ち往生しています。

\[\[\Fil:|\]\] 

出力イム後には、次のようになります

'''Höganäs''' är en tätort och centralort i Höganäs kommun i Skåne län. Höganäs blev stad 1936. Ursprungligen är Höganäs ett fiskeläge kring vilket en gruvindustri utvecklades för brytning av kol (bränsle)|kol och lera|leror för tillverkning av eldfast keramik (Höganäskrus). Gruvindustrin är numera nedlagd. 

私はjQueryのを持っていますが、.replaceはトリックを行うべきだと思いますか?これを打破するには

\[\[Fil:[^\]]*\]\]|\[\[|\]\] 

+1

を調整することもしたい、これを試してみてください。あなたはこの言語を作ったのですか、それとも既存の言語ですか?多分あなたはそれのためのパーサーを得ることができます。 – mpen

+0

@マークこれはウィキペディアのものですが、代わりに代わりにパーサを手に入れることもできますが、リンクではなくプレーンテキストにしたいと思っています。 – Philip

答えて

1

が空の文字列で、この正規表現のためのすべての一致を交換してみてください

\[\[Fil:[^\]]*\]\] matches [[Fil:...]] 
\[\[     matches remaining [[ 
\]\]     matches remaining ]] 
|      combines with OR 

をあなたの正確な出力を得るために、あなたにも、いくつかの空白を取り除く必要があるかもしれません:

\[\[Fil:[^\]]*\]\]\s+|\[\[|\]\] 

ので、JavaScriptで、あなたが書くことができます:

x.replace(/\[\[Fil:[^\]]*\]\]\s+|\[\[|\]\]/g, ''); 
+0

ええ、これはReggyで動作しますが、私はjavascriptで実装しようとするとそれはしませんか? x.replace(/ \ [\ Fil:[^ \]] * \] \] | \ [\ [| \] \]/'') 何か不足していますか? – Philip

+0

あなたのコメントには、バックスラッシュがたくさんあるので、難しいです。JavaScriptでもテストされており、ここで動作します。 –

+0

http://jsfiddle.net/gN7Yd/ – Philip

0

あなたはこの

\[\[.*?\]\] 

のような正規表現を使用し、Fil:で始まるが、その後、条件付きで、あなたがそれを消去するために、空白文字列を返すようにしたいかどうかを決めるかどうかを確認するためにreplaceのコールバック関数のバージョンを使用することができ、それとも単語そのもの。

代わりに2つの正規表現を使用します。 Fil:の文字列を最初に空の文字列に置き換え、残りの文字列を単語だけで置き換えます。あなたは\1はカッコ内に何を指し、すなわち、[[word]]ものをキャッチし、その単語に後方参照に置き換えることを

\[\[(\w+)\]\] 

または類似のものを使用することができます。

+0

ありがとう、しかし、私はデイビッドからの実用的な解決策を得ました:) – Philip

1

は、多分あなたはそれがいくつかのマークアップ言語からだように見えるこれはスペース

var string = "[[Fil:Hoganas_hamn.jpg|miniatyr|Höganäs Hamn.]] [[Fil:Hoganas_hamn_kvickbadet.jpg|miniatyr|Höganäs Hamn - Kvickbadet.]] [[Fil:Höganäs Jefast ny redigerad-1.jpg|miniatyr|Jefasthuset sett från väster med en del av den nya bryggan vid Kvickbadet.]] '''Höganäs''' är en [[tätort]] och [[centralort]] i [[Höganäs kommun]] i [[Skåne län]]. Höganäs blev stad 1936. Ursprungligen är Höganäs ett [[fiskeläge]] kring vilket en [[gruvindustri]] utvecklades för brytning av [[kol (bränsle)|kol]] och [[lera|leror]] för tillverkning av [[eldfast]] [[keramik]] ([[Höganäskrus]]). Gruvindustrin är numera nedlagd."; 

var result = string.replace(/\[\[Fil:.*?\]\]/g, '').replace(/\[\[(.*?)\]\]/g, '$1'); 

console.log(result); 
+0

ええ、これも働いたが、私はダビッドの解決策に固執する。ありがとう、結構です! – Philip