gpt4 book ai didi

Python Regex 捕获@[123456](John Smith)

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:22 25 4
gpt4 key购买 nike

我正在尝试以类似@[123456](John Smith) 的模式捕获 ID 和名称,并使用它们创建类似 John Smith 的字符串。

这是我尝试过的方法,但它不起作用。

def format(text):

def idrepl(match):
fbid = match.group(1)
name = match.group(2)
print fbid, name
return '<a href="https://www.facebook.com/{}">{}</a>'.format(fbid, name)

return re.sub(r'\@\[(\d+)\]\[(\w\s+)\]', idrepl, text)

最佳答案

部分

(\w\s+)

恰好匹配一个单词字符后跟 1 个以上的空白字符。

很明显,这不是您想要的,而且很容易修复:

([\w\s]+)

“一个或多个字符,每个字符都是一个单词或空白字符”。

这是否是实际上您想要的,我不确定——它愉快地匹配John Smith,但不是 例如 Maureen O'Hara(撇号会阻碍匹配)或 John V. Smith(此处是阻碍匹配的点)或 John Smith-Passell(这里是破折号)。

一般来说,人们在拼写自己的名字时可能会使用多个标点字符(以及单词字符和空格)——撇号、点、破折号等等。如果你不需要考虑这个,那么,很好!-) 如果你这样做,生活会变得有点困难(将这些字符放在上面的方括号内大部分都可以,但需要采取预防措施-- 例如破折号,如果您需要它成为括号字符集的一部分,则它必须位于末尾,就在右括号之前)。

关于Python Regex 捕获@[123456](John Smith),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com