regex - 正则表达式在记事本++中工作,但不在python中
问题描述
我在记事本++中尝试这个正则表达式(WVDC)((?:.*\r\n){1})
并且它正在工作,但是当我在python中做同样的事情时它不会
文字是
Above 85°C the rated (DC/AC) voltage must be derated at per 1.5%/2.5%°C
WVDC: 400 Volts DC
SVDC: 600 Volts DC
蟒蛇代码
re.search(r'(WVDC)((?:.*\r\n){1})',txt)
解决方案
以下脚本在 Python 中为我工作:
input = """Above 85°C the rated (DC/AC) voltage must be derated at per 1.5%/2.5%°C
WVDC: 400 Volts DC
SVDC: 600 Volts DC"""
result = re.findall(r'(WVDC).*\r?\n', input)
print(result)
['WVDC']
请注意,我对正则表达式模式所做的唯一重大更改是使回车\r
可选。因此,Python 中的多行字符串(可能是您的源代码使用的)似乎只带有换行符,但不带有回车符。无论如何,使用\r?\n
匹配换行符通常是一个好主意,因为它可以同时覆盖 Unix 和 Windows 的行尾。
推荐阅读
- pgadmin - pgAdmin 是否有任何#region start ---- #region end
- amazon-web-services - 检查我的 AWS 应用程序负载均衡器是否将请求转发到正确的目标组?
- node.js - 几次成功请求后数据变为空 - 节点服务应用程序池缓存
- c++ - DLL LoadLibrary 函数在加载 msvcr100.dll 时返回错误代码 193
- .net - 如何避免对 ConcurrentBag 的争用
.GetEnumerator() - python - 使用 Python 请求 Zebra 打印机的状态
- python - 提高传单中的 geojson 性能(postgres 数据库查询)
- c++ - 是否可以通过在 C++ 中将返回类型从可选更改为非可选来覆盖函数?
- java - 根据常量值执行 JUnit
- javascript - Nodejs fastify 崩溃 heruku api