1

@シンボルによって参照されるタグを含むテキスト ファイルがたくさんあります。たとえば、メモに が含まれている場合、メモには「ホーム」というタグが付けられます@home

@@character を含まず、文字の後のすべてに一致する Perl Regex を見つけようとしています。

これまでのところ(@\w+)、タグ全体に正常に一致するものがあります (.eg などに一致し@homeます@work) が、@ 文字の後の文字のみが取得されるように変更する方法が見つかりません。

文字に続くすべての単語に一致するこのperl正規表現を見ましたが、これからうまくいくようには見えませんでした。

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

4

@Quentinが言ったように、これ@(\w+)が最善の解決策です。

#!/usr/bin/perl

while (<>) {
    while (/@(\w+)/g) {
        print $1, "\n";
    }
}

タグを正確に一致させたい場合は、(?<=@)\w+代わりに試すことができます。の後のすべての文字に一致します@が、@除外されます。

#!/usr/bin/perl

while (<>) {
    while (/(?<=@)\w+/g) {
        print $&, "\n";
    }
}

参照:先読みと後読みの使用

于 2012-09-29T06:42:28.853 に答える
2

@キャプチャ グループの外に移動するだけです。

@(\w+) 
于 2012-09-29T06:27:38.047 に答える