gpt4 book ai didi

python - 将文本从 jira 转换为 Markdown

转载 作者:行者123 更新时间:2023-12-04 07:55:00 24 4
gpt4 key购买 nike

我正在尝试将文本从 Jira 转换为 Markdown,但是在尝试转换链接和文本颜色时遇到了问题:

  • {color:red}text in red{color}<span style="color:red">text in red</span>
  • [Google|http://google.com][Google](http://google.com)

  • 颜色的问题是我想保留颜色变量(这只适用于红色)。
    这是我的代码,它有效,但它可能不是解决问题的最佳方法:
    import re

    conversion_dict = {
    r"\]": ")",
    r"\|": "](",
    r"{color:red}": "<span style=\"color:red\">",
    r"{color}": "</span>"
    }


    def format_text_from_jira(comment_body):
    for pattern in conversion_dict:
    comment_body = re.sub(pattern, conversion_dict[pattern], comment_body)
    return comment_body
    有谁知道更好的解决方案?

    最佳答案

    对于特定颜色,您可以使用 3 个匹配的捕获组 color带有对颜色的反向引用,negated character class匹配除 curl 和非贪婪匹配之外的任何字符,直到匹配的结束部分第一次出现为止。

    {(color):([^{}]+)}(.*?){\1}
    Regex demo
    并在替换中使用 3 个捕获组。
    import re

    regex = r"{(color):([^{}]+)}(.*?){\1}"
    s = "{color:red}text in red{color}"
    subst = '<span style="\\1:\\2\">\\3</span>)'
    result = re.sub(regex, r'<span style="\1:\2">\3</span>', s)
    print(result)
    输出
    <span style="color:red">text in red</span>

    对于您可以使用的链接
    \[([^][|]+)\|([^][]+)]
    Regex demo
    import re

    regex = r"\[([^][|]+)\|([^][]+)]"
    s = "[Google|http://google.com]"
    subst = '<span style="\\1:\\2\">\\3</span>)'
    result = re.sub(regex, r'[\1](\2)', s)
    print(result)
    输出
    [Google](http://google.com)
    或者你可以让链接部分更具体一点
    \[([^][|]+)\|(https?://[^][]+)]

    关于python - 将文本从 jira 转换为 Markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66748481/

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