我想转换下一个例子:#39#401#102成为一个链接。这些都在一个大文本里面。因此,我尝试通过正则表达式检测它们。我做了以下模式:
pattern_issue = '#[0-9]*'
但是,由于它在逃脱后已经显示在网上,所以:
I'm your father
结果:
I'm your father
错误是因为我的预处理功能。我想修改我的正则表达式模式,以避免像:
pattern_issue = '[^&][#][0-9]*[^;]'
所以就这样“问题#37”变成了一个链接,但是“我和你父亲”不是,但没有成功!
希望你能帮忙!
提前致谢!
答案 0 :(得分:3)
您可以使用以下正则表达式:
(?<!&)#[0-9]+(?!;)
否定后瞻(?<!&)
确保&
之前没有#
,否定前瞻确保数字后面没有;
。< / p>
请参阅demo
在我的初步评论中,我在末尾使用了与\b
相同的模式来强制匹配结束字边界(只是为了确保匹配的最后一个数字后跟一个非单词字符) 。因此,如果您打算忽略(?<!&)#[0-9]+(?!;)\b
- 类似实体,那么#100;
应该会起作用。