[英]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.