Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex-排除方括号和带有特殊键的方括号_Javascript_Jquery_Regex_String - Fatal编程技术网

Javascript Regex-排除方括号和带有特殊键的方括号

Javascript Regex-排除方括号和带有特殊键的方括号,javascript,jquery,regex,string,Javascript,Jquery,Regex,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 Kvickba

我得到了这个字符串:

[[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:+dynamic word]]的每个实例和每个[[,]],但不排除单词本身,因为它只有[[word]]而没有“FIL:”

我已经开始为它做正则表达式了,但我被卡住了

\[\[\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应该起作用吗?

尝试用空字符串替换此正则表达式的所有匹配项:

\[\[Fil:[^\]]*\]\]|\[\[|\]\]
要分解这一点:

\[\[Fil:[^\]]*\]\]   matches [[Fil:...]]
\[\[                  matches remaining [[
\]\]                  matches remaining ]]
|                     combines with OR
要获得准确的输出,您可能还需要去掉一些空白:

\[\[Fil:[^\]]*\]\]\s+|\[\[|\]\]
因此,在JavaScript中,您可以编写:

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

您可以使用这样的正则表达式

\[\[.*?\]\]
然后使用的回调函数版本检查是否以
Fil:
开头,然后有条件地决定是返回一个空白字符串来删除它,还是只返回单词本身

或者,使用2个正则表达式。首先将
Fil:
替换为空白字符串,然后将其余的替换为单词。你可以用

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

或者类似于捕获
[[word]]
一个词,然后将其替换为对该词的反向引用,即
\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);

这看起来像是来自某种标记语言。这种语言是你编的,还是已有的?也许你可以为它找一个解析器。@标记它来自wikipedia,是的,也许我可以为它找一个解析器,但我不希望它是链接,只是纯文本。是的,这在Reggy上有效,但当我尝试用javascript实现它时,它不起作用?x、 替换(/[\Fil:[^]*]|[[[124;]]/,'')我遗漏了什么吗?在你的评论中很难说,因为有很多向后斜杠遗漏了。。。在JavaScript中也进行了测试并在此处工作。在正则表达式中添加一个尾随的g标志:
x=x.replace(/\[\[\Fil:[^\]*\]\]\]\\]\\[\[\[\\]\]\]/g',)
。这使它成为一个全局搜索-没有,它只匹配第一个[[Fil:…]]条目。是的,这一个也有效,但我将坚持使用Davids解决方案,一个替换。谢谢你!