python - 我如何形成一个正则表达式,在某些情况下它以 * 开头,而在其他情况下不在 python 中
问题描述
早上好,我有一个关于正则表达式的问题,我正在形成的问题是我想要捕获的内容在某些情况下以 * 开头,而在其他情况下则不是,例如:
*B:P79COL01 #
A:PED77MCY04 #
我用来捕获这个值的正则表达式如下:
pattern = re.compile (f '[/ *] [AB]: {equipo} #?')
其中equipo是一个变量
但是我不能得到我不以*开头的值(示例A:PED77MCY03#),我对正则表达式真的很陌生,我几乎看不懂
equipo='P79COL01'
patron=re.compile(f'[/*][AB]:{equipo}#?')
解决方案
\*?[AB]:(.*?) #
可以工作。
\*
转义 * 字符允许我们匹配它。
?
匹配前面字符的 0 或 1 次出现,这似乎是您问题的核心问题。
(.*?)
匹配:
和之间的任何内容#
。(注意 # 前面的空格,如上例所示)结果是它自己的捕获组。
{0,1} 和 ? 似乎是一样的,但为了便于阅读,与后者一起使用可能是有意义的,但这里有自由,而且似乎取决于个人选择——就像评论中列出了这两个选项一样。
绝对值得对文档进行一般性的查看,以了解任何调整和细微的变化。
推荐阅读
- php - MySQL 查询到 PHP 查询
- python - 将具有一定行数的数据列从多个文本文件中提取到一个文本文件中
- python - 难以理解类
- python - Ray 比 Python 和 .multiprocessing 慢得多
- jenkins - 在发布 GitHub 事件时触发 Jenkins 作业
- python-3.x - 有没有办法在比较整数输入时比较 IF 语句中的字符串?
- python - python代码无法从tensorflow解析gFile
- c# - 一次从文件中读取内容...静态还是单例?
- algorithm - 图像处理算法的标准
- javascript - Lodash 克隆数组与扩展运算符