如果我有一些xml,其中包含了如下的mediawiki标记:
“...collected在12世纪,其中[亚历山大大帝]是英雄,他在其中被代表,有点像英国人[亚瑟王亚瑟]
什么才是合适的论据,比如:
re.findall([[__?__]], article_entry)
在转义双方括号并获得文本的适当链接(如:[[Alexander of Paris|poet named Alexander]] )时,我遇到了一点挫折。
发布于 2009-05-01 01:20:08
下面是一个例子
import re
pattern = re.compile(r"\[\[([\w \|]+)\]\]")
text = "blah blah [[Alexander of Paris|poet named Alexander]] bldfkas"
results = pattern.findall(text)
output = []
for link in results:
output.append(link.split("|")[0])
# outputs ['Alexander of Paris']版本2将更多的内容放入regex中,但结果是更改了输出:
import re
pattern = re.compile(r"\[\[([\w ]+)(\|[\w ]+)?\]\]")
text = "[[a|b]] fdkjf [[c|d]] fjdsj [[efg]]"
results = pattern.findall(text)
# outputs [('a', '|b'), ('c', '|d'), ('efg', '')]
print [link[0] for link in results]
# outputs ['a', 'c', 'efg']第3版,如果您只希望链接没有标题。
pattern = re.compile(r"\[\[([\w ]+)(?:\|[\w ]+)?\]\]")
text = "[[a|b]] fdkjf [[c|d]] fjdsj [[efg]]"
results = pattern.findall(text)
# outputs ['a', 'c', 'efg']发布于 2009-05-01 01:52:23
RegExp: \w+( \w+)+(?=)])
输入
[巴黎亚历山大诗人亚历山大]
输出
亚历山大诗人
输入
[巴黎亚历山大]
输出
巴黎的亚历山大
发布于 2009-05-01 01:57:28
import re
pattern = re.compile(r"\[\[([\w ]+)(?:\||\]\])")
text = "of which [[Alexander the Great]] was somewhat like [[King Arthur|Arthur]]"
results = pattern.findall(text)
print results会给出输出
["Alexander the Great", "King Arthur"]https://stackoverflow.com/questions/809837
复制相似问题