You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用于Wiktionary原始数据清理的正则表达式需求:匹配含嵌套双括号的Archivo/File类双括号内容

用于Wiktionary原始数据清理的正则表达式需求:匹配含嵌套双括号的Archivo/File类双括号内容

嗨,我来帮你搞定这个Wiktionary原始数据的清理问题!你的需求是精准匹配那些包含嵌套双括号的[[Archivo:...]]和[[File:...]]块,不管内容是单行还是多行对吧?这类带嵌套结构的匹配,普通正则搞不定,得用支持递归的正则引擎,下面给你具体的实现方案:

核心正则表达式方案

针对你的需求,我整理了一个支持递归嵌套的正则,能完美覆盖单行、多行以及内部嵌套双括号的场景:

\[\[(Archivo|File):(?:[^[\]]|(?R))*\]\]

正则规则详解

我给你拆解下每个部分的作用,方便你理解和调整:

  • \[\[:精准匹配目标块开头的双左括号
  • (Archivo|File)::匹配块的标识前缀,区分西班牙语的Archivo和英语的File,后面紧跟冒号
  • (?:[^[\]]|(?R))*:这是核心的递归匹配逻辑,非捕获组里包含两种匹配情况,可重复任意次数:
    • [^[\]]:匹配任何不是左右方括号的字符,覆盖普通文本、符号、标签等内容
    • (?R):递归调用整个正则表达式,专门处理内部嵌套的[[...]]结构,解决嵌套匹配的难题
  • \]\]:匹配目标块结尾的双右括号

适配不同场景的使用说明

1. 匹配多行文本

如果你的原始数据里存在跨多行的Archivo/File块,记得给正则引擎加上多行匹配标志(比如PCRE里的s标志,Python里的re.DOTALL),这样正则就能识别换行符,不会因为换行中断匹配。

2. 代码示例(Python)

如果你用Python处理数据,这里给你一个可直接复用的代码片段:

import re

# 定义匹配完整块的正则(包含整个[[...]])
full_pattern = r'(\[\[(Archivo|File):(?:[^[\]]|(?R))*\]\])'
# 你的原始Wiktionary数据文本
raw_text = """
[[Archivo:Diagrama bicicleta.svg|400px|miniaturadeimagen|'''Partes de una bicicleta:'''<br>
[[asiento]] o [[sillín]], [[cuadro]]{{-sub|8}}, [[potencia]], [[puño]]{{-sub|4}}, [[cuerno]], [[manubrio]], [[telescopio]], [[horquilla]], [[amortiguador]], [[frenos]], [[tijera]], [[rueda]], [[rayos]], [[buje]], [[llanta]], [[cubierta]], [[válvula]], [[pedal]], [[viela]], [[cambio]], [[plato]]{{-sub|5}} o [[estrella]], [[piñón]], [[cadena]], [[tija]], [[tubo de asiento]], [[vaina]].]] + [[ something|of course]]

[[File:Karwats.jpg|thumb|A scourge ''(noun {{senseno|en|whip}})'' [[exhibit#Verb|exhibited]] in a [[museum#Noun|museum]].]] + [[ something|of course]]
"""

# 提取所有匹配的Archivo/File块
matched_blocks = [match.group(1) for match in re.finditer(full_pattern, raw_text, re.DOTALL)]
for block in matched_blocks:
    print("匹配到的块:")
    print(block)

注意事项

如果你的工具或语言不支持正则递归(比如某些老旧的文本编辑器),那这个正则可能失效,这种情况下建议用栈解析法来处理嵌套括号——遍历文本时遇到[[就入栈,遇到]]就出栈,栈为空时就标记一个完整的目标块,这种方法兼容性更强,但代码量会稍大一些。

备注:内容来源于stack exchange,提问作者Tiger-222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 14:50:26