タブでインデントされた(アウトライン化された)テキストが大量にあり、先頭の箇条書き文字が欠落しています。
some point
a sub-point
各タブを2つのスペースに置き換え、前にハイフンを追加します。これは私が必要とするターゲットフォーマットです:
- some point
- a sub-point
検索:
正規表現\t+\S
を使用して、「任意の数のタブとそれに続く任意の非空白」を検索できます。これは問題なく機能し、「検索」機能は、最初の非タブ文字までのすべての行の先頭を強調表示します。
置換:
正規表現を使用して、「すべてのタブを2つのスペースに置き換え、次に1つのハイフンと1つのスペース、その後に元の非タブ文字」を指定するにはどうすればよいですか。具体的には:
私のgoogle-fuは私を \1
の概念に導きましたが、それをどのように使用できるかわかりません。私の試行錯誤のテストでは、エラーが発生するだけでした。
更新:\1
について何かを発見しました:find文字列で括弧を使用する必要があります:(\t+)(\S)
そしてそれをreplacepart:\1- \2
。これは、上記の項目#2と#3を解決するのに役立ちますが、それでも#1については途方に暮れています。
更新:
Duh-#1は、テキストの他の場所にタブ文字がない限り、単純な非正規表現の検索/置換アクションです。それは私が今調査する必要があるものです!
UbuntuのGeditを試していますが、Notepad ++またはSublimeを使用することもできます編集者固有の提案がある場合。
Notepad ++では2つのステップでそれを行うことができます。
最初のステップ:
\t
2番目のステップ:
^\h+
$0-
説明:
^ : beginning of line
\h+ : 1 or more horizontal spaces
交換:
$0 : the whole match (ie. all the spaces at the beginning of each line)
- : a dash followed by a space
使用できる方法は2つあります。
文字列全体と次に来るものを検索し、グループ化を使用して、すべてではなく1つ以上のグループに置き換えることができます。ここで、_$1
_または_\1
_が役立ちます。
交換したい部品だけを検索して、他のものに交換することもできます。
まず、明示的に置換する正規表現を作成して検索します。検索で文字列の複数の部分を検索し、途中に何かを残したい場合は、グループ化が必要です。例:_[b]text[/b]
_を検索し、それを_<b>text</b>
_に置き換えます
正規表現は\[b\](.+)\]\/b\]
のようになり、_<b>\1</b>
_に置き換えます。
1つの連続した文字列であるすべてのテキストオカレンスのみを変更する必要がある場合は、それを具体的に検索して置き換えることができます。たとえば、_ -My example
_を検索して_ - My example
_に置き換えます(これは基本的に2つのスペースのタブを置き換え、-の後にスペースを追加します。_\t+-
_を検索して次のように置き換えます。 _ -
_
ここでの正規表現とは、1回以上出現するタブを検索し、その後にハイフンを続けることを意味します。実際に置換せずにこの文字列を検索すると、置換するテキストが選択されていることがわかります。
タブを2つのスペースに置き換える場合は、単に_\t
_を検索し、それを__に置き換えます。
この投稿では、スペースの後にalt + 255を使用して、2つのスペースを続けて入力しました。そうしないと、SuperUserはすべてを1つのスペースに凝縮します。