繁体   English   中英

Perl正则表达式可以匹配@字符后的所有内容

[英]Perl Regex to match everything after @ character

我有一堆包含@符号引用的标签的文本文件。 例如,如果注释包含@home则该注释被标记为“ 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+) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM