我收到了这个字符串:
[[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:+动态字]]和每个[[,]]的每个实例,但是当它只有[[word]]而没有" FIL时,不排除单词本身:& #34;在它。
我已经开始为它做一个正则表达式但是我被卡住了。
\[\[\Fil:|\]\]
之后的输出Im应如下所示:
'''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应该做的伎俩?
答案 0 :(得分:1)
尝试用空字符串替换此正则表达式的所有匹配项:
\[\[Fil:[^\]]*\]\]|\[\[|\]\]
要解决这个问题:
\[\[Fil:[^\]]*\]\] matches [[Fil:...]]
\[\[ matches remaining [[
\]\] matches remaining ]]
| combines with OR
要获得准确的输出,您可能还需要删除一些空格:
\[\[Fil:[^\]]*\]\]\s+|\[\[|\]\]
因此,在JavaScript中,您可以写:
x.replace(/\[\[Fil:[^\]]*\]\]\s+|\[\[|\]\]/g, '');
答案 1 :(得分: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);
答案 2 :(得分:0)
您可以使用像这样的正则表达式
\[\[.*?\]\]
然后使用replace的回调函数版本检查是否以Fil:
开头,然后有条件地决定是否要返回一个空白字符串来删除它,或者只是单词本身。
或者,使用2个正则表达式。首先用空白字符串替换Fil:
,然后用单词替换其余字符串。你可以使用
\[\[(\w+)\]\]
或类似的东西捕获[[word]]
,然后用对该词的反向引用替换它,即\1
指的是括号中的内容。