К сожалению, сделать универсальное решение проблематично из-за существенных расхождений разных «диалектов» языка Markdown. Вот, к примеру, [реализация](https://github.com/Rapptz/discord.py/blob/master/discord/utils.py) экранирования Markdown, используемая в Python-библиотеке [discord.py](https://pypi.org/project/discord.py/), упрощающей доступ к API Discord. Однако в ней не предусмотрено, например, экранирование заголовков и списков.

```python
import re


_MARKDOWN_ESCAPE_SUBREGEX = '|'.join(r'\{0}(?=([\s\S]*((?<!\{0})\{0})))'.format(c) for c in ('*', '`', '_', '~', '|'))

_MARKDOWN_ESCAPE_COMMON = r'^>(?:>>)?\s|\[.+\]\(.+\)'

_MARKDOWN_ESCAPE_REGEX = re.compile(fr'(?P<markdown>{_MARKDOWN_ESCAPE_SUBREGEX}|{_MARKDOWN_ESCAPE_COMMON})', re.MULTILINE)

_URL_REGEX = r'(?P<url><[^: >]+:\/[^ >]+>|(?:https?|steam):\/\/[^\s<]+[^<.,:;\"\'\]\s])'

_MARKDOWN_STOCK_REGEX = fr'(?P<markdown>[_\\~|\*`]|{_MARKDOWN_ESCAPE_COMMON})'


def escape_markdown(text: str, *, as_needed: bool = False, ignore_links: bool = True) -> str:
    r"""A helper function that escapes Discord's markdown.
    Parameters
    -----------
    text: :class:`str`
        The text to escape markdown from.
    as_needed: :class:`bool`
        Whether to escape the markdown characters as needed. This
        means that it does not escape extraneous characters if it's
        not necessary, e.g. ``**hello**`` is escaped into ``\*\*hello**``
        instead of ``\*\*hello\*\*``. Note however that this can open
        you up to some clever syntax abuse. Defaults to ``False``.
    ignore_links: :class:`bool`
        Whether to leave links alone when escaping markdown. For example,
        if a URL in the text contains characters such as ``_`` then it will
        be left alone. This option is not supported with ``as_needed``.
        Defaults to ``True``.
    Returns
    --------
    :class:`str`
        The text with the markdown special characters escaped with a slash.
    """

    if not as_needed:

        def replacement(match):
            groupdict = match.groupdict()
            is_url = groupdict.get('url')
            if is_url:
                return is_url
            return '\\' + groupdict['markdown']

        regex = _MARKDOWN_STOCK_REGEX
        if ignore_links:
            regex = f'(?:{_URL_REGEX}|{regex})'
        return re.sub(regex, replacement, text, 0, re.MULTILINE)
    else:
        text = re.sub(r'\\', r'\\\\', text)
        return _MARKDOWN_ESCAPE_REGEX.sub(r'\\\1', text)

```

Вы можете доработать этот код под ваши нужды, например расширив список специальных символов в константе `_MARKDOWN_STOCK_REGEX`. Несколько альтернативных реализаций можно посмотреть, например, на сайте [Program Creek](https://www.programcreek.com/python/?CodeExample=escape+markdown).
น่าเสียดายที่การแก้ปัญหาแบบสากลนั้นเป็นปัญหาเนื่องจากความแตกต่างที่สำคัญระหว่าง "ภาษาถิ่น" ที่แตกต่างกันของภาษา Markdown ตัวอย่างเช่น นี่คือ [การนำไปใช้งาน](https://github.com/Rapptz/discord.py/blob/master/discord/utils.py) ของการหลบหนี Markdown ที่ใช้ในไลบรารี Python [discord.py](https: / /pypi.org/project/discord.py/) ซึ่งช่วยให้เข้าถึง Discord API ได้ง่ายขึ้น อย่างไรก็ตาม ไม่ได้จัดเตรียมการ Escape ส่วนหัวและรายการต่างๆ ไว้ ```หลามนำเข้า re _MARKDOWN_ESCAPE_SUBREGEX = '|'.join(r'\{0}(?=([\s\S]*((?<!\{0})\{0})))' format(c) สำหรับ c ใน ('*', '`', '_', '~', '|')) _MARKDOWN_ESCAPE_COMMON = r'^>(?:>>)?\s|\[.+\ ]\(.+\)' _MARKDOWN_ESCAPE_REGEX = re.compile(fr'(?P<markdown>{_MARKDOWN_ESCAPE_SUBREGEX}|{_MARKDOWN_ESCAPE_COMMON})', re.MULTILINE) _URL_REGEX = r'(?P<url><[^: >]+:\/[^ >]+>|(?:https?|steam):\/\/[^\s<]+[^<.,:;\"\'\]\s]) ' _MARKDOWN_STOCK_REGEX = fr'(?P<markdown>[_\\~|\*`]|{_MARKDOWN_ESCAPE_COMMON})' def Escape_markdown(text: str, *, as_needed: bool = False, ละเว้น_links: bool = True) -> str: r"""ฟังก์ชันตัวช่วยที่หนีจาก Markdown ของ Discord พารามิเตอร์ ----------- text: :class:`str` ข้อความที่จะหลีกมาร์กดาวน์ as_needed: :class:`bool` ว่าจะหลีกอักขระมาร์กดาวน์ตามต้องการหรือไม่ ซึ่งหมายความว่าจะไม่หลีกอักขระที่ไม่เกี่ยวข้องหากไม่จำเป็น เช่น ``**hello**`` ถูกหลีกเป็น ``\*\*hello**`` แทนที่จะเป็น ``\*\*hello\*\ *``. อย่างไรก็ตาม โปรดทราบว่าการทำเช่นนี้อาจทำให้คุณพบกับการละเมิดไวยากรณ์อันชาญฉลาดได้ ค่าเริ่มต้นเป็น `` เท็จ '' ละเว้น_links: :class:`bool` ว่าจะปล่อยลิงก์ไว้ตามลำพังเมื่อทำการหลีกเลี่ยงมาร์กดาวน์หรือไม่ ตัวอย่างเช่น หาก URL ในข้อความมีอักขระเช่น ``_`` ก็จะถูกปล่อยทิ้งไว้ตามลำพัง ตัวเลือกนี้ไม่รองรับ ``as_needed`` ค่าเริ่มต้นเป็น `` จริง '' ส่งคืน -------- :class:`str` ข้อความที่มีอักขระพิเศษมาร์กดาวน์หลีกหนีด้วยเครื่องหมายทับ """ ถ้าไม่จำเป็น: def replacement(match): groupdict = match.groupdict() is_url = groupdict.get('url') if is_url: return is_url return '\\' + groupdict['markdown'] regex = _MARKDOWN_STOCK_REGEX ถ้าละเว้น_links: regex = f'(?:{_URL_REGEX}|{regex})' return re.sub(regex, replacement, text, 0, re.MULTILINE) else: text = re.sub(r'\\', r'\\\\', text) return _MARKDOWN_ESCAPE_REGEX.sub(r'\\\1', text) ``` คุณสามารถแก้ไขโค้ดนี้ให้เหมาะกับความต้องการของคุณได้ เช่น โดยการขยายรายการอักขระพิเศษใน ` _MARKDOWN_STOCK_REGEX` คงที่ คุณสามารถดูการใช้งานทางเลือกต่างๆ ได้ เช่น บนเว็บไซต์ [Program Creek](https://www.programcreek.com/python/?CodeExample=escape+markdown)
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence