0

我有一个大文本文件,其中包含以下格式的数据:

AUTHOR: John_Doe
TITLE: This is a title
BASENAME: this_is_a_title

AUTHOR: Jill_Doe
TITLE: Another Title
BASENAME: another_title

AUTHOR: Jack
TITLE: Last Title
BASENAME: last_title

如何找到文档中的所有下划线,但只能在以“BASENAME:”开头的行上?我尝试过lookbehinds和groupings,但我有限的正则表达式知识让我转圈圈。有什么想法吗?谢谢!

编辑:对不起,昨晚不在我的办公桌前。不确定我使用的是哪种正则表达式,它用于 Sublime Text 2 中的高级搜索。为了澄清,我试图在 BASENAME 行上找到下划线,以便将它们更改为破折号。所以我正在寻找一个只返回下划线的正则表达式。

4

2 回答 2

0

我建议^BASENAME:[^_]*_.*$。这将找到所有这些行。还是您想单独查找所有下划线而不是包含行?

于 2012-10-02T21:02:32.827 回答
0

我会使用分组来获取下划线,否则你会得到所有的文本

(?<=^BASENAME:)(.+?(?<underscore>_))*

您将在名为 的组中找到下划线underscore

如果您的语言不支持命名组,您可以改用

(?<=^BASENAME:)(.+?(_))*
于 2012-10-02T21:50:17.173 回答