ASCII 以外のキーボード文字を含むすべての行を削除するにはどうすればよいですか?
正規表現コードを何度も試しましたが、どれも期待通りには機能しませんでした。このコードも試しました[^\x00-\x7F]+
が、すべての文字が選択されませんでした。
私の頭に浮かんだアイデアはこの方法を使うことです[^a-z0-9``~!@#$%^&*()-_=+[]{}\|;:'"<>,./?]
が、この文字の一部が選択解除されなかったため、まだ機能しません\
/
|
{
}
[
]
$
#
^
(
)
行に以下のリストにない文字が含まれている場合は、削除するかブックマークします
0123456789`~!@#$%^&*()-_=+[]{}\/|;:'"<>,.? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
簡単な例: 他にもこのような文字が見つかります:https://en.wikipedia.org/wiki/Unicode 文字の一覧
0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ ¤©ª«¬¯°±²³´µ¶·¸¹º»¼½¾¿÷ÆIJŒœƔƕƋƕ ƜƝƢƸƾDžNJNjǽǾǼɁɀȾɎʒəɼʰʲʱʴʳʵʶʷʸˁˀˇˆ˟ˠ ˩˧Ͱͱͳʹͼͻͺ͵ͿΏΔΘΞΛΣΠΦΧΨΩΪΫάέήίΰαβδε θηκλμξπςρφχψωϊϋϏώϑϐϓϒϔϕϖϠϟϞϝϜϡϢ ϤϣϧϫϬϮϯϰϱ₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲ ₳₴₵₶₷₸₹₺₻₼₽₾₿⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜ ⅝⅞⅟℠℡™℣ℤ℥Ω℧ℨ℩KÅℬℭ℮ℯ⇀⇁ↀↁↂↃↄ ⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⅀⅁⅂⅃⅄ⅅ ⅆⅇⅈⅉ⅊⅋⅌⅍ⅎ⅏ⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽ
期待される結果:
0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./? abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
答え1
[^\x00-\x7F]
正常に動作しますが、 のような長い文字クラスを使用する場合は、[^a-z0-9``~!@#$%^&*()-_=+[]{}\|;:'"<>,./?]
特別な意味を持つ文字をエスケープする必要があります (つまり-[]\
、改行を追加します\r
、\n
。
正規表現は次のようになります:
[^a-z0-9``~!@#$%^&*()\-_=+\[\]{}\\|;:'"<>,./?\r\n]
# ^ ^ ^ ^ ^^^^
- Ctrl+H
- 検索対象:
[^a-z0-9``~!@#$%^&*()\-_=+\[\]{}\\|;:'"<>,./?\r\n]+$
しかし、繰り返しになりますが、[^\x00-\x7F]
問題なく機能し、より読みやすくなります - と置換する:
LEAVE EMPTY
- チェック ラップアラウンド
- 正規表現をチェック
- Replace all
与えられた例の結果:
0123456789`~!@#$%^&*()-_=+[]{}\|;:'"<>,./?
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
答え2
このソリューションにこだわりがなく、Notepad++にこだわっていない場合は、ここで示したように、Win 10にbashをインストールできます。https://superuser.com/a/1252271/715210(申し訳ありませんが、いつも Linux の回避策について質問に戻ってしまいます ;) )
解決策はあるが、残念ながらアポストロフィも失われることになる。'
- スタートメニューからWindowsのbashを開く
- ファイルが保存されているフォルダに移動します
cd /mnt/c/path/folder
(ドライブ C: は /mnt/c にあります) ファイル名がテキスト ファイルを生成できるバー.txtこのコマンドで:
cat foo.txt | tr -cd '[:alnum:]\n\r~!@#$%^&*()-_=+{}\|;:<>,./?"`' | sed '/^$/d' > bar.txt
各部の説明:
cat foo.txt
テキストファイルを出力し、パイプを使用して|
出力をコマンドにリダイレクトします。このコマンドは、 sed > bar.txt`tr -cd
の間にリストにないすべての文字を削除します。出力をファイルにリダイレクトします。'...'. Followed by a pipe to
to remove the empty lines. Last but not least with
バー.txt
感謝:
答え3
Notepad++ ではこれは簡単です:
メニュー検索>マーク...
検索対象:
[^\x00-\x7F]
☑ マークライン
(•) 正規表現プレスすべて検索
メニュー検索>ブックマーク>ブックマークした行を削除する