您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在哪个行号上找到正则表达式匹配项?

在哪个行号上找到正则表达式匹配项?

免责声明:这并不意味着是一个实际的解决方案,而是说明了使用出色的正则表达式hack扩展的一种方式。而且,它仅在允许捕获组引用自己的正则表达式引擎上起作用。例如,您可以在Notepad ++中使用它,因为它使用了PCRE引擎,但在Java中却没有。

假设您的文件是:

some code
more code
hey, hello!
more code

文件底部,粘贴:1:2:3:4:5:6:7,其中:代码的其余部分中找不到分隔符,其中数字至少与行数一样高。

然后,要获得第一个的行hello,可以使用:

(?m)(?:(?:^(?:(?!hello).)*(?:\r?\n))(?=[^:]+((?(1)\1):\d+)))*.*hello(?=[^:]+((?(1)\1)+:(\d+)))

组2将捕获包含hello的第一行的行号。

其他 2022/1/1 18:29:51 有272人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶