Python 用于降价验证器的正则表达式

Python 用于降价验证器的正则表达式,python,regex,markdown,Python,Regex,Markdown,我一直在开发一个带有CMS和降价支持的电报机器人。支持的标记是 *bold text* _italic text_ `inline fixed-width code` ```text pre-formatted fixed-width code block ``` 问题是,例如,当有一个开始的*标记而没有结束的*标记时,bot API会中断并拒绝发送消息 我对regex不太感兴趣,但是有没有一种方法可以构建一个regex,在构建消息时验证所有所说的标记?还是有现成的降价验证器 我尝试了pyth

我一直在开发一个带有CMS和降价支持的电报机器人。支持的标记是

*bold text*
_italic text_
`inline fixed-width code`
```text
pre-formatted fixed-width code block
```
问题是,例如,当有一个开始的
*
标记而没有结束的
*
标记时,bot API会中断并拒绝发送消息

我对regex不太感兴趣,但是有没有一种方法可以构建一个regex,在构建消息时验证所有所说的标记?还是有现成的降价验证器


我尝试了python
markdown
lib,意思是从中捕获异常,但当标记被破坏时,它不会中断,只会保留不正确的标记不变。

要检查行是否以“*”开头和结尾,请尝试regex模式

> ^\*.*\*$

要检查行是否以“*”开头和结尾,请尝试regex模式

> ^\*.*\*$

此方法可能适合您的需要:

import re
teststring="*hello*?Q@*()@(UE) World?@(EI)@EN *"
results=re.findall("^[*].*[*]$",teststring)
if not len(results)==1:
    raise Exception
它假定一行以*开头,以*结尾。 _uu和u’案例将遵循类似的方法。 由于“”案例包括换行符,请使用DOTALL标志:

re.findall("^[']{3}.*[']{3}$",teststring, re.DOTALL)

此方法可能适合您的需要:

import re
teststring="*hello*?Q@*()@(UE) World?@(EI)@EN *"
results=re.findall("^[*].*[*]$",teststring)
if not len(results)==1:
    raise Exception
它假定一行以*开头,以*结尾。 _uu和u’案例将遵循类似的方法。 由于“”案例包括换行符,请使用DOTALL标志:

re.findall("^[']{3}.*[']{3}$",teststring, re.DOTALL)
仅供参考,您的文本未使用标准标记语法。在Markdown
*中强调了这一点*
(使用
,就像
\这是
,通常以斜体显示)。要获得
(通常以粗体显示),您需要使用
**两个星号**
\两个下划线。仅供参考,您的文本未使用标准标记语法。在Markdown
*中强调了这一点*
(使用
,就像
\这是
,通常以斜体显示)。要获得
(通常以粗体显示),您需要使用
**两个星号**
\两个下划线。