python - 如何从输入字符串中匹配并打印连续的反斜杠和破折号(\-\-\-\-)?
问题描述
我有一个这样的字符串:
x = "\-\-\-\-\-\-\-\-\-\-\-\-\-"
字符串可以是任意数量的\-
单位。
我正在使用以下代码进行匹配\-
x = "\-\-\-"
v = re.findall("[\\-]*", x)
print(v)
问题是,模式[\\-]*
给出了结果:
['', '-', '', '-', '', '-', '']
如果使用三个斜线,则图案会更清晰一些,但结果仍然不对。
v = re.findall("[\\\-]*", x)
结果如下:
['\\-\\-\\-', '']
所以?关于如何以反斜杠破折号反斜杠破折号\-\-
形式获得它的任何想法?
解决方案
re.findall
尝试匹配捕获组(即括号中的正则表达式部分),并在列表中返回它们,而不是匹配的字符串。
在这种情况下,字符串"\-\-\-"
中包含正则表达式元字符,因此它在您在列表中看到的结果中被转义。
因此,您只需要检索列表中的第一个元素即可以字符串形式获取它。
import re
x = '\-\-\-'
v = re.findall("[\\\-]*", x)[0]
print(v)
这给出了所需的输出:
\-\-\-
推荐阅读
- python - Python 记录器 - Selenium
- python - 有没有办法在数组的拆分之间获取数字的开始和结束?
- haskell - 为表达式树实现变态
- svelte - 是什么导致我的 Svelte 应用程序中出现此“无法读取未定义的属性‘标题’”错误?
- django - 在弹性 beanstalk 上配置 Apache/Django 以解决 INVALID_HOST 错误
- excel - VBA:根据 Excel 表格更新形状属性
- python - 将数据保存到 Excel 文件但条目过多
- php - 数据重复php
- node.js - 为什么 passport.serializeUser 不是函数?
- php - 如何用str_replace替换字符串,但PHP中没有任何附加符号的字符串?