
ランダムな数のスペースを含む 30,000 行のテキストがあります。各行の最初のスペースにのみ文字を追加する必要があります。何か提案できる方がいらっしゃいましたら、大変助かります。
答え1
- Ctrl+H
- 検索対象:
^\S+\h\K
- と置換する:
%
- チェック ラップアラウンド
- 正規表現をチェック
- Replace all
説明:
^ # beginning of line
\S+ # 1 or more non space
\h # 1 horizontal space
\K # forget all we've seen until this position
交換:
% # the character to insert
与えられた条件:
I have 30,000 lines of text that have randon
number of spaces in them. I need to add a character
to just the first SPACE in each line.
Any who can suggest anything would be
greatly appreciated.
与えられた例の結果:
I %have 30,000 lines of text that have randon
number %of spaces in them. I need to add a character
to %just the first SPACE in each line.
Any %who can suggest anything would be
greatly %appreciated.
答え2
TextPad をお試しください。マクロを記録して再生することができます。最初の行で実行したいことを記録して、最初の行を完了したら、カーソルを次の行の先頭に置きます。その後、ファイルの最後までマクロを再生します。または、マクロ再生キーを押し続けます。
答え3
あなたが探しているのは正規表現です。まず最初に検索を正規表現に変換します。
喜びを感じるのは、この問題を解決する方法を正確に知っていると思うからです
https://regex101.com/r/aW4gG2/1
必要な表現は次のとおりです:
検索:(^.*?)( )
置換:\1#\2
正規表現では、これは()
「キャプチャ」を意味します。つまり、この非常に具体的なグループが見つかり、それを\1、\2、または\3で置換で参照できます。番号は1から始まり、開き括弧から数えます。
^
行の先頭から開始することを意味します。(挿入で最初のスペースをカバーする必要があるため、先頭から始めて最初のスペースを探します)
.*?
この部分は、スペースの前の最初の単語を検索します。これは、任意の文字 ( .
) を 1 つのグループにできるだけ多く ( *
) し、必要最小限にすることで行われます?
。疑問符がなければ、すべての文字 (すべてのスペースを含む) がキャプチャされます。
( )
この部分は、2 番目のグループが最初のグループの後のスペースであることを意味します。これが最初のスペースになります。これが文字を挿入する場所です。
代替
\1#\2
\1
は最初の文字セットを参照します。また、*
式内の は、文字セットが 0 を含む任意の長さの単語であることを意味します。
#
挿入文字
\2\
もちろんスペースです。
結果、#
最初のスペースの前に が置かれることになります。最初のスペースの後に置きたい場合は、置換を調整するだけで済みます。
\1\2#
#
各行の最初のスペースの後に を配置します。
これが正規表現の威力です。単純な検索と置換で、どのマクロよりも正確に挿入できます。柔軟性があり、高速で、ほとんどの場合それほど難しくありません。
ここに、RegEx とは何か、そしてなぜそれが便利なのかを説明する素晴らしい初心者向けチュートリアルがあります。[正規表現ワンREOのおかげで
これは多くの人が推奨しているチュートリアルですが、正直言って私にはあまり理解できませんでした。[正規表現情報]
私は実際にRegEx.infoに戻ることはなく、すぐにNotepad++ ドキュメントこれはこの時点で非常に役立ちました。もちろん、[正規表現101]。必要なのは、/gm
式に を追加することだけです。その後、スニペットを TestString に貼り付けて、正しく実行できるようになるまで練習します。
答え4
これには非常に簡単な解決策があります。
Notepad++ にすでに何かがあることを思い出しました。
- 置換ウィンドウを開く
- 検索フィールドに「^」と入力し、その後にスペースまたは検索したい文字を入力します。
これにより、行の先頭にあるものだけが検索されます。 - 置換フィールドに必要なものを入力してください
- 検索モードを「正規表現」に設定する
- すべて置換をクリック
- 終わり