Notepad ++の正規表現機能を使用して、一度に選択してコピーする文字列を含むHTMLソースファイルの一部があります。
テキストソースの一部を次に示します。
<option value="Performance"
>Performance</option>
<option value="Maintenance"
>Maintenance</option>
<option value="System Stability"
>System Stability</option>
正規表現を使用しています"[0-9a-zA-Z ]*"
「値」の値を検索します。また、Notepad ++検索の機能を選択して、見つかったテキストを強調表示/マークしました。これで問題なく動作するので、強調表示されたテキストのみをクリップボードにコピーまたはカットして、さらに処理します。しかし、Notepad ++ではこの機能を見つけることができません。これは単に不可能なのですか、それとも私も愚かですか?
代わりにこれを試してください:
最初に、行末の問題を修正します(Notepad ++は複数行の正規表現を許可しません)
検索[拡張モード]:_\r\n>
_(または独自のシステムの行末)
置換:_>
_
それから
[正規表現モード]を検索:<option[^>]+value="([^"]+)"[^>]*>.*
(オプションだけでなくvalue
のすべての出現が必要な場合は、先頭のoption
を削除するだけです)
置換:_\1
_
2番目の正規表現の説明:
_<option[^>]+ Find a < followed by "option" followed by
at least one character which is not a >
value=" Find the string value="
([^"]+) Find one or more characters which are not a " and save them
to group \1
"[^>]*>.* Find a " followed by zero or more non-'>' characters
followed by a > followed by zero or more characters.
_
はい、HTMLを正規表現で解析しています- これらの警告 apply-出力を注意深く確認してください。
Notepad ++ 5.9の時点で、「マークされていない行を削除する」機能が追加されました。この機能を使用して、不要なものをすべて削除し、各値行の他のテキストを置き換えます。
[検索]-> [ブックマーク]-> [ブックマークされた行のコピー]を使用して同様のことを行うこともできます。
したがって、技術的にはまだマークされたテキストをコピーすることはできませんが、マークされたテキストで行をブックマークしてから、ブックマークされた行またはマークされていない行に対してさまざまな操作を実行できます。
Googleの検索結果でこの投稿がヒットするように、完全性のためにこれを追加しています。
実際には、1つのステップではなく、正規表現検索からすべてをコピーできます。
これは https://superuser.com/questions/477628/export-all-regular-expression-matches-in-textpad-or-notepad-as-a-list に似ています。
あなたが抽出しようとしていることを願っています:
「パフォーマンス」
"メンテナンス"
「システムの安定性」
方法は次のとおりです-ステップ1/3:[検索]-> [検索]-> [置換]タブを開き、[正規表現ラジオ]ボタンを選択します。 Find what:(\ "[a-zA-Z0-9\s] + \")およびReplace with:\ n\1に入力し、Replace All butttonをクリックします。
ステップ2/3:最初のステップの後、キーワードは次の行に表示されます(次の画像を参照)。 [マーク]タブに移動し、[検索対象:フィールド]に同じ正規表現を入力します。ブックマーク行にチェックマークを付けます。次に、「すべてマーク」をクリックします。
Notepad ++には素晴らしい機能があります。次の手法を使用して、ファイルからすべての一致を抽出します。
powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]*" -AllMatches | % { $_.Matches } | select-object Value > output.txt
そして、ソートされたリスト内の個別の一致のみが必要な場合:
powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]" -AllMatches | % { $_.Matches } | select-object Value -unique | sort-object Value > output.txt
いいえ、Notepad ++ 5.6.2の時点では、これは不可能のようです。列の選択(Alt + Selection)は可能ですが、複数の選択は明らかに実装されていないため、検索機能でもサポートされていません。
同じ問題がありました。新しいタブに正規表現の一致を一覧表示できます。PSPadEditorのすべての一致は、Notepad ++と非常によく似ています。
Ctrlキーを押しながらFキーを押して検索し、正規表現オプションを確認し、正規表現を入力して[リスト]をクリックします。
メモ帳では不可能ですが、HERE'S THE EASY SOLUTION:
フリーウェアのExpresso v3.1が必要です http://www.ultrapico.com/ExpressoDownload.htm
私は別のフリーソフトウェア、Expresso by Ultrapicoに頼りました。
検索するテキスト全体をExpressoの[サンプルテキスト]ペインに貼り付け、
「一致を実行」ボタンを押します。 「検索結果ペイン」と「エクスポート先...」または「一致したテキストをクリップボードにコピー」を右クリックします。
NB:元の作者は@ Andreas Janssonですが、コメントに隠されているため、ページはGoogle検索で上位にランクされています。