正则表达式提取行中 TAB 之后的最后一项?

正则表达式提取行中 TAB 之后的最后一项?

使用 Perl 正则表达式引擎,我无法弄清楚如何提取使用 TAB 字符拆分项目的行中的最后一个项目。

以下是来自 Process Explorer 日志文件的一个示例:

^advapi32.dll\tAdvanced Windows 32 Base API\tMicrosoft Corporation\t5.1.2600.5755\tC:\WINDOWS\system32\advapi32.dll$

我尝试了以下方法,但无济于事:

  • \t\w$:“未找到搜索字符串‘\t\w$’!”。这很合理,因为“\”没有被考虑在内
  • \t[^\t].+?$:从第二列开始
  • [^\t].+?$: 整行

任何想法?

谢谢。

答案1

使用通配符的贪婪性:它们会尽可能地吃掉所有可能的内容。例如,如果您想要匹配整行,请使用:^.*\t([^\t]+)$^.*\t匹配 a 之前的所有内容tab(包括它),而组匹配您要查找的内容(在本例中([^t]+)$您可以使用它来引用它)。$1

答案2

你并不远:非常简单\t[^\t]+$(或者 \t([^\t]+)$如果你可以从结果中捕获组(你正在寻找的组在括号内)

相关内容