python re:需要用网站链接替换数字

python re:需要用网站链接替换数字,python,re,Python,Re,我有这样的字符串: 这是SBN:1245897一些文本一些文本SBN4589364一些文本一些 文本SBN-7859157,部分文本部分文本编号:2615,部分文本SBN:7859148 asasas YYY-485一些文本一些文本 我只需要获得所有SBN相关的号码,并用指向某个网站的链接替换它,我正在尝试这段代码,但这是行不通的 p = re.compile('SBN[:- ] ( \d+ )') p.sub(r'<a href="http://example.com/?sbn

我有这样的字符串:

这是SBN:1245897一些文本一些文本SBN4589364一些文本一些 文本SBN-7859157,部分文本部分文本编号:2615,部分文本SBN:7859148 asasas YYY-485一些文本一些文本

我只需要获得所有SBN相关的号码,并用指向某个网站的链接替换它,我正在尝试这段代码,但这是行不通的

p = re.compile('SBN[:- ] ( \d+ )')
p.sub(r'<a href="http://example.com/?sbn=\1" target="_blank">\1</a>', string)
p=re.compile('SBN[:-](\d+))
p、 子(r'',字符串)

请帮助..

正则表达式中的所有空格计数!仅在您希望在比赛中使用空格时才使用空格。您可以将其限制为仅限空格(
),但通常“全部空白”更有用(
\s

我还建议始终将正则表达式作为原始字符串编写

此正则表达式包含您问题中的所有示例:

p = re.compile(r'SBN[:-]\s*(\d+)')

正则表达式中的所有空格计数!仅在您希望在比赛中使用空格时才使用空格。您可以将其限制为仅限空格(
),但通常“全部空白”更有用(
\s

我还建议始终将正则表达式作为原始字符串编写

此正则表达式包含您问题中的所有示例:

p = re.compile(r'SBN[:-]\s*(\d+)')

通过一点点调试,您的正则表达式应该读取
SBN[:-]?(\d+)
,或者相当接近的内容。您添加了一些不希望匹配的空格,并且第一个符号后的空格是可选的。通过一点调试,您的正则表达式应该是
SBN[:-](\d+)
,或者相当接近的。您添加了一些不希望匹配的空格,第一个符号后的空格是可选的。它可以工作!。。但它也取代了“SBN”。。所以字符串变成了“some text some text…”而不是“some text SBN:some text…”@EduVMagadan这是您选择的替换模式。。。如果您不想删除SBN,请在替换模式的
标记中添加SBN。它可以工作!。。但它也取代了“SBN”。。所以字符串变成了“some text some text…”而不是“some text SBN:some text…”@EduVMagadan这是您选择的替换模式。。。如果不想删除SBN,请在替换模式的
标记中添加SBN。