我有一堆包含@
符号引用的标签的文本文件。例如,如果笔记包含 ,则将笔记标记为“家” @home
。
我正在尝试找到一个 Perl 正则表达式,它将匹配@
字符之后的所有内容,但不包括 @character。
到目前为止,我有这个(@\w+)
成功匹配整个标签(例如,它匹配@home
等@work
),但我找不到修改它的方法,所以只有 @ 字符之后的字符被拾取。
我查看了这个perl 正则表达式来匹配字符后面的所有单词,但我似乎无法从中解决。
任何帮助都会很棒。
我有一堆包含@
符号引用的标签的文本文件。例如,如果笔记包含 ,则将笔记标记为“家” @home
。
我正在尝试找到一个 Perl 正则表达式,它将匹配@
字符之后的所有内容,但不包括 @character。
到目前为止,我有这个(@\w+)
成功匹配整个标签(例如,它匹配@home
等@work
),但我找不到修改它的方法,所以只有 @ 字符之后的字符被拾取。
我查看了这个perl 正则表达式来匹配字符后面的所有单词,但我似乎无法从中解决。
任何帮助都会很棒。
正如@Quentin 所说,@(\w+)
是最好的解决方案。
#!/usr/bin/perl
while (<>) {
while (/@(\w+)/g) {
print $1, "\n";
}
}
如果您确实想完全匹配标签,则可以尝试(?<=@)\w+
。它匹配 之后的每个字符@
,但被@
排除在外。
#!/usr/bin/perl
while (<>) {
while (/(?<=@)\w+/g) {
print $&, "\n";
}
}
只需移动@
它,使其位于捕获组之外:
@(\w+)