たとえば、テキストエディタの検索/置換ダイアログで使用して、リスト内のアイテムの順序を逆にすることができる単一の正規表現はありますか?
たとえば、次のリストを見てください。
- 最初のアイテム
- 2番目のアイテム
- 3番目のアイテム
EditPadなどのテキストエディタでそれを選択し、検索と置換ボックスを表示し、正規表現を適用して(ループとして実行するかどうかに関係なく)、次のように変換します。
- 3番目のアイテム
- 2番目のアイテム
- 最初のアイテム
これはできますか?
これは正規表現では実行できません。
Perlのような言語を使用することをお勧めします。この言語では、正規表現を使用してリストを分割し、逆の順序で書き戻すことができます。
MSDOS で
SORT /R < originallist.txt > resortedlist.txt
リストに既知の固定数n
のアイテムがあり、その場合でも、正規表現が大きくなるにつれて複雑になる場合のみn
。(主な困難は通常、エンジンに文字通りの改行を入れることです。)
ますます複雑になるこの一連の正規表現は、スクリプト言語を使用して非常に簡単に生成できます。ただし、スクリプト言語を使用すると、反転自体に使用する方がほぼ確実に簡単になります。
これが尋ねられてからかなり時間が経っていることに気づきました... しかし、この答えはここにはありませんでした。
テキスト エディター内でリストをどのようにフォーマットしたかによって、次の行に沿って何かを行うことができます。
原文:「ザ・クイック・ブラウン・フォックス」
検索: (\w+)\s(\w+)\s(\w+)\s(\w+)
置き換え: $4 $3 $2 $1
出力: "Fox Brown Quick The" (メモ帳++で動作します。「正規表現」のオプションを選択してください)
JavaScript と同等:
var string = "The Quick Brown Fox";
string.replace(/(\w+)\s(\w+)\s(\w+)\s(\w+)/,"$4 $3 $2 $1");
良いリファレンスはhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressionsです