首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mistune内联词法re.compile帮助

Mistune内联词法re.compile帮助
EN

Stack Overflow用户
提问于 2016-02-22 10:00:10
回答 1查看 86关注 0票数 1

我正在使用mistune来解析一些文本,将文档编号超链接到内部站点上的文档管理系统。使用https://github.com/lepture/mistune上的wiki_link示例,我找到了用双方括号括起来的任何东西,并创建了一个iwl锚(来自HP/iManage/自主的互织链接协议)。这已经足够好用了,但是,我试图用一个doc#前缀(在#和数字之间加或不加一些空格)来标识数字。因此,如果文本显示为looking at doc# 25487657 as a sample...,则re.compile参数将根据前面的'doc#‘标识该数字(范围从低1000到数十亿)。我可以在output_interwoven_link方法中处理#上的拆分,但在正则表达式中遇到了困难。

我一直依赖搜索引擎来获得一个regex表达式的例子来解决我的regex问题,所以我没有能力自己制作这个表达式。我现在如何使用双方括号完成此操作,如下所示:

代码语言:javascript
复制
from mistune import Renderer, InlineGrammar, InlineLexer, Markdown
import re
import copy


class InterwovenLinkRenderer(Renderer):
    def interwoven_link(self, docnum):
        return '<a href="iwl:dms=dmssrv11&lib=Active&num=%s&ver=1&latest=1&command=opencmd">%s</a>' % (docnum, docnum)


class InterwovenLinkInlineLexer(InlineLexer):
    def enable_interwoven_link(self):
        self.rules.interwoven_link = re.compile(
            r'\[\['                   # [[
            r'([\d]+?)'               # Document Number
            r'\]\](?!\])'             # ]]
            #r'''(doc#[\d]+?)'''
        )

        self.default_rules = copy.copy(InlineLexer.default_rules)
        self.default_rules.insert(3, 'interwoven_link')

    def output_interwoven_link(self, m):
        text = m.group(1)
        #doc, docnum = text.split('#')
        return self.renderer.interwoven_link(text)


@register.filter(name='parse')
def parse(value=None):
    if value:
        renderer = InterwovenLinkRenderer()
        inline = InterwovenLinkInlineLexer(renderer)
        # enable the feature
        inline.enable_interwoven_link()
        markdown = Markdown(renderer, inline=inline)
        return markdown(value)
    else:
        return False

对我可以使用的东西有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-22 11:00:32

如果要匹配字符串"doc#“后面的任何数字,则正则表达式为doc# (\d+)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35544657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档