3

壊れた行を識別する良い方法のように感じるので、引用された CSV ファイルに 6 つの引用符が含まれていない行にジャンプできるようにしたいと思います。

Notepad ++の検索機能で正規表現を使用することは賢明なアプローチだと思いますが、行を取得する方法がわかりません。

6 つの引用符 (") は完全な行を示唆するため、6 を含まない行にスキップしたいと考えています。

ここにいくつかのサンプルデータがあります。この例では、ジャンプしたい4行目です

"sam","mark","dave"
"sam","mark","dave"
"sam","mark","dave"
"sam","mark","
dave"
"sam","mark","dave"
"sam","mark","dave"
4

2 に答える 2

2

これは、正しい行を見つけるのに役立ちます

^(.*?"){6}[^"]$

次に、一致しない行(後の行)をブックマークできますsearch->bookmarks->inverse bookmarks

編集

代わりに、このパターンは必要な行のみに一致します

(?!("[^"\r\n]*){6})^.+?$

否定先読みを使用して、正確に 6 行の行を回避し、他の行を"保持するよう検索エンジンに指示します。

6 つ以上の引用符を持つことができる場合 (これも問題です)、代わりに以下を使用します。

(?!^("[^"\r\n]*){6}$)^.+?$

編集

  • (?!これは否定先読みであり、「次のテキストを含まない文字列 (または行) に一致する」ことを示します。
  • (^": 一致させてはいけないテキストは" 、行頭の a で始まります( ^)

  • [^"\r\n]*: およびその後に*、二重引用符または改行文字ではない 0 個以上の ( ) 要素が含まれます (^が角括弧内の最初の文字である場合、意味は「角括弧内の文字を見つけないでください」です)。

  • ){6}:6回繰り返し

  • $): 行末 (および否定先読みの終わり) で終了

  • ^.+?$: AND、条件が OK の場合、行全体に一致します。

于 2012-10-04T17:06:15.857 に答える
0

引用符が 0 回から 5 回発生する行を見つけるには、この正規表現を使用します。

^([^"\n]*"){0,5}$

説明:

  • ^・行頭から
  • ([^\n"]*")[^"\n]- 二重引用符 ( )まで、二重引用符または改行 ( ) を除く任意の文字を含むグループを検索します*"
  • {0,5}- グループの 0 ~ 5 回の出現を含む行を検索します
  • $- 行末まで

6 を超える行にも一致さ"せるには、これを使用できます

^(([^"\n]*"){0,5}|([^"\n]*"){7,})$
  • |2 つの正規表現 (5 以下または 7 以上) を OR に入れます。
  • {7,}- グループが 7 回以上出現する行を検索
于 2012-10-04T17:16:49.993 に答える