python - 如何找出我的正则表达式匹配的行?

标签 python regex

我有一个多行字符串,想在 Python 中对其应用正则表达式。有没有办法找出正则表达式匹配的行?

例如,如果我使用正则表达式

regex = re.compile("(?<=i)s")

在绳子上

s = """This
is
a multiline
string"""

我如何才能找到 01 匹配的行? regex.findall(s) 给我一个所有匹配项的列表,但它没有告诉我这些匹配项在哪一行。

最佳答案

如果您使用 regex.finditer,您可以获得这样的行号:

regex = re.compile("(?<=i)s")
s = """This
is
a multiline
string"""
for match in regex.finditer(s):
    lineno = s.count('\n', 0, match.start())
    ...

关于python - 如何找出我的正则表达式匹配的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502167/

相关文章:

python - 空字符串而不是不匹配的组错误

java - 实现词法分析器

PHP 带标点符号

Python从Buffer中读取数据

python - 如何在 Python 中以字母数字顺序获取下一个字符串?

python - 函数调用中的星号

php - 如何替换字符串中 {} [] () 大括号之间的所有内容?

正则表达式以点|分号空间分割但忽略 url 例如

python - 修复用户对帖子的评论功能——flask 应用程序

python - 关闭 Django 开发服务器上的模型验证