[ 新規に投稿する ]

一意の文字列が含まれる複数行の検索についてNo.41929
sub_tr さん 25/05/15 10:14 [ コメントを投稿する ]
  件名の検索の方法がわかりませんでした。
もしよろしければ助言をいただけたらありがたいと思います。


3 行以上 "This is unique word" が含まれる箇所を検索する

こちらはヒットしない
0000000000 abcdefg abcdefg abc 0000000000
1111111111 This is unique word 1111111111
2222222222 This is unique word 2222222222
3333333333 abcdefg abcdefg abc 3333333333

こちらはヒットする
0000000000 abcdefg abcdefg abc 0000000000
1111111111 This is unique word 1111111111
2222222222 This is unique word 2222222222
3333333333 This is unique word 3333333333
4444444444 This is unique word 4444444444
5555555555 This is unique word 5555555555
6666666666 abcdefg abcdefg abc 6666666666

(.*This is unique word.*\n){3,}
検索イメージは上記です、正しく検索はできていません。
[ ]
RE:41929 一意の文字列が含まれる複数行の検索についてNo.41930
おすぎ さん 25/05/15 12:09 [ コメントを投稿する ]
  おすぎです。

単純に、次の検索語なら3行にヒットします。
(.*This is unique word.*)\n(.*This is unique word.*)\n(.*This is unique 
word.*)

これではダメですか?


>例
>3 行以上 "This is unique word" が含まれる箇所を検索する
[ ]
RE:41929 一意の文字列が含まれる複数行の検索についてNo.41931
秀丸担当 さん 25/05/15 12:32 [ コメントを投稿する ]
  正規表現で改行を含む検索をする場合、どこまでを対象とするかの制約があります。
通常、検索文字列に含まれる"\n"の数を数えて、その行数までを上限としています。
\nの数が変わるような場合は、自動的に行数が広がらず、明示的に(?#maxlines:数値)の書き方で指定する必要があります。
詳細はヘルプの以下のページにあります。
目次− コマンド− 検索系コマンド− 正規表現− \nを使った複数行検索の際の制限について 

今回の例の場合、例えば以下のようにすると検索することができます。
(.*This is unique word.*\n){3,}(?#maxlines:3)
[ ]
RE:41930 一意の文字列が含まれる複数行の検索についてNo.41932
おすぎ さん 25/05/15 12:34 [ コメントを投稿する ]
おすぎです。

次の検索語なら、他の行も含めて検索できます(ただし、改行50個までという限定付き)。
(.+?\n)*(.*This is unique word.*\n){3}(.+?\n)*(?#maxlines:50)

>単純に、次の検索語なら3行にヒットします。
>(.*This is unique word.*)\n(.*This is unique word.*)\n(.*This is unique 
>word.*)
[ ]
RE:41929 一意の文字列が含まれる複数行の検索についてNo.41933
sub_tr さん 25/05/15 12:54 [ コメントを投稿する ]
  みなさま回答ありがとうございました。
(?#maxlines:数値)を指定することにより希望の検索ができました。
[ ]

[ 新規に投稿する ]