Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在markdown中创建链接的hashtag_Python_Django_Regex_Markdown - Fatal编程技术网

Python 在markdown中创建链接的hashtag

Python 在markdown中创建链接的hashtag,python,django,regex,markdown,Python,Django,Regex,Markdown,我目前正在尝试用django/python和linkify hashtags解析markdown。有一些简单的解决方案: for tag in re.findall(r"(#[\d\w\.]+)", markdown): text_tag = tag.replace('#', '') markdown = markdown.replace( tag, f"[{tag}](/blog/?q=%23{text_tag})"

我目前正在尝试用django/python和linkify hashtags解析markdown。有一些简单的解决方案:

for tag in re.findall(r"(#[\d\w\.]+)", markdown):
   text_tag = tag.replace('#', '')
   markdown = markdown.replace(
       tag,
       f"[{tag}](/blog/?q=%23{text_tag})")
这很好,但是可以将带有
#
的所有内容转换为链接。如:
https://example.com/xyz/#section-在第
页上获得链接。如果它当前位于链接本身内部,它也会被链接化

当链接被链接化时,内部链接也会断开

下面是一个综合案例:

#hello This is an #example of some text with #hash-tags - http://www.example.com/#not-hashtag but dont want the link

#hello #goodbye #summer

#helloagain

#goodbye

This is #cool, yes it is #radaf! I like this #tool.

[Link](#not-a-hashtag)

[Link](https://example/#also-not)

<a href="#this-neither">Hai</a>
#您好这是一个#带有#散列标签的文本示例-http://www.example.com/#not-标签,但不要链接
#你好#再见#summer
#你好
#再见
这太酷了,是的,是拉达夫!我喜欢这个工具。
[链接](#非标签)
[连结](https://example/#also-不)
谢谢使用

def regex_replace(m):
    if m.group(1):
        return fr"[{m.group(1)}](/blog/?q=%23{m.group(2)})"
    return m.group()

regex = r'''<[^>]*>|\[[^][]*]\([^()]*\)|https?://[^\s"'<>]*|(#(\w+(?:\.\w+)*))'''
markdown = re.sub(regex, regex_replace, markdown)
def regex_replace(m):
如果m.组(1):
返回fr“[{m.group(1)}](/blog/?q=%23{m.group(2)})”
返回m.group()
regex=r'']*>\[[^][]*]\([^()]*\)\https?:/[^\s']*.*(\w+(?:\.\w+)”)
markdown=re.sub(正则表达式、正则表达式替换、markdown)

]*>\[^][]*]\([^()]*\)\https?:/[^\s”]*.*(\w+(?:\.\w+)
是一个正则表达式,它匹配标记、标记链接、URL或匹配一个hashtag,在
\
之后捕获整个标记及其部分(组1)。匹配第一组后,替换的是链接化的标签,否则字符串将返回而不进行修改。

使用

def regex_replace(m):
    if m.group(1):
        return fr"[{m.group(1)}](/blog/?q=%23{m.group(2)})"
    return m.group()

regex = r'''<[^>]*>|\[[^][]*]\([^()]*\)|https?://[^\s"'<>]*|(#(\w+(?:\.\w+)*))'''
markdown = re.sub(regex, regex_replace, markdown)
def regex_replace(m):
如果m.组(1):
返回fr“[{m.group(1)}](/blog/?q=%23{m.group(2)})”
返回m.group()
regex=r'']*>\[[^][]*]\([^()]*\)\https?:/[^\s']*.*(\w+(?:\.\w+)”)
markdown=re.sub(正则表达式、正则表达式替换、markdown)


]*>\[^][]*]\([^()]*\)\https?:/[^\s”]*.*(\w+(?:\.\w+)
是一个正则表达式,它匹配标记、标记链接、URL或匹配一个hashtag,在
\
之后捕获整个标记及其部分(组1)。第一组匹配后,替换的是链接化的hashtag,否则字符串将返回而不进行修改。

“注意:请求HTML、JSON等。正则表达式往往会遇到负面反应。如果有语法分析器,请使用它”-正则表达式当前使用的语法分析器不正确。目前没有具有hashtag链接的解析器。我自己编写的链接器是一个模板过滤器。“注意:请求HTML、JSON等。正则表达式往往会遇到负面反应。如果有它的解析器,请改用它”——正则表达式tagI目前使用的是mistune解析器。目前没有具有hashtag链接的解析器。我自己编写链接器作为模板过滤器。