0

HTMLコード内で特定の用語に最もよく一致する正規表現を作成しています。私はこれを反復プロセスで行って、一致を絞り込んで、不要なものを除外しています。そこで、正規表現を作成して実行し、データを吐き出し、それを調べて、一致がどれだけうまく機能しているかを確認します。たとえば、「tema」(標準を提供する業界団体の名前) という用語を探している場合、それが「sitemap」にも一致することに気付き、何らかの方法で正規表現を変更して不要な項目を除外することがあります。

これを簡単にするために、結果をスキャンしやすくするために、行全体ではなく、試合の前後の 20 文字など、いくつかのコンテキストと共に試合を印刷したいと考えています。これは、単純な方法で達成するのがイライラするほど難しいことが証明されています.

たとえば、これはうまくいくと思います:

$line =~ /(.{,20}tema.{,20})/i;

つまり、キーワードの前後に最大 20 個のキーワードを一致させ、スキャン用に出力する「コンテキスト」に含めたいと考えています。

しかし、そうではありません。ここで何か不足していますか?a{,20} が最大 20 個の「a」文字と一致する場合、.{,20} が 20 個の「.」文字と一致しないのはなぜですか。一致しますか?

頭をかきむしる。

4

2 に答える 2

0

m/^(.*)tema(.*)$/then usesubstrなどで検索して、 の最後の文字$1と の最初の文字を取得するのはどうですか$2

于 2013-07-03T18:51:37.263 に答える