使用 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]+)$
如果你可以从结果中捕获组(你正在寻找的组在括号内)