2017-03-08 4 views
3

これは繰り返し質問のように聞こえるが、私はRegexには比較的新しいので、他の回答のいくつかを実際に理解していない。私はこれが小文字の後ろにSublime regexをスペースに変更する

Find: \n+[(a-z)] 
Replace: *space*\1 

ようなもので、以前に仕事を得るために管理し、私は私も使用される正確な用語を思い出すことができない、と私はそれをしようとした場合、今それに続くアルファベットが削除され、オンライン正規表現テスターは\ 1を言います置換の無効な式です。

など。

I 
want 
this 
To remove 
Newlines 

I want this 
To remove 
Newlines 

ではなく、私は私がラウンドを初めて使用したもの覚えていないが、私は中に「単語全体」オプションを無効に

I ant his 
To remove 
Newlines 

になってきているになるべき崇高であり、何とか文字をカットすることなく改行を削除することができました。 \ 1が無効なのはなぜですか?私が "+"を使うかどうかの違いは何ですか?私は貪欲という意味を本当に理解していません。申し訳ありません、ありがとうございます!

編集:すべての回答ありがとう!私は正規表現をより柔軟に使うことをもっと学ぶべきことがたくさんありますが、この場合は私が見逃した[(a-z)]と([a-z])の違いでした。

+3

'[(a-z)]'は、開閉括弧と小文字の文字クラスです。 '([a-z])'は、小文字の文字クラスを含むキャプチャグループ( '\ groupnumber'で参照可能)です。 –

+0

ありがとうございました!!!これは私が – cobaltB12

+0

@ cobaltB12で逃したことでした:あなたに役立つと証明された答えをupvotingすることを検討してください([Stack Overflowの方法を参照してください](http://meta.stackexchange.com/questions/173399を参照)。/how-to-up-on-stack-overflow))あなたが15ポイントを超えてupvoting特権を持っているからです。 –

答えて

0

あなたは

(?:)?[\n\r]([a-z]) 

のようにそれを行うと$1$1に続くスペース、)との発生を置き換え、a demo on regex101.comを見ることができました。


説明:

(?:)? # Looks for a space, this is optional 
[\n\r] # newline 
([a-z]) # a character between a and z, lowercase 
1

あなたの正規表現はキャプチャグループが含まれていません。置換パターン内の\1は、正規表現パターン内のキャプチャグループに対する後方参照であるです。グループが存在しない場合、エラーがポップアップします。

小文字の前に1 +改行を置き換えると思われるようです。正規表現がある

:あなたの設定は次のようになっていることを確認します\h*\R+([a-z])(どこ\h*マッチ0+水平空白、\R+試合任意の 1+改行、CRLF/LF/CR([a-z])は小文字のASCII文字に一致する)
交換:\1\1バック置くグループ1つの値)

セッティング:

enter image description here

大文字と小文字の区別も有効にする必要があることに注意してください。

+0

これは、「**余りにも多くのスペースを残す**」(https://regex101.com/r/FwqdxJ/2)、つまり 'I'と' want'の間です。 – Jan

+0

'I'の後のスペースを意味しますか? '\ h *'を追加するだけで修正されます。 –

+0

しかし、あなたはすぐに私の表情に着陸します:) – Jan

関連する問題