2017-10-31 3 views
0

[^\b].の間に違いはありますか?`[^ b]`と `.`の間に違いはありますか?

私は、この単語境界文字クラス([^\b])を含む他の誰かによって作成されたコードを修正していました。ワイルドカード.(これはルビーにあります)との違いを見つけることができません。

単語境界がある場合にそれがあるとして、私の仮定は(、[^\b]+文字列hello worldに適用helloと一致し、スペースの前に停止すべきであるということでした。

私の観察は、それだけですべてを一致させるように見えるということです。 rubular link。ここで起こってどうあるべきか

+0

です。 [このRubyのデモ](https://ideone.com/54MTLn)を参照してください。 '[^ \ b]'はすべての文字にマッチしますが、バックスペースの文字にマッチします。 –

+0

あなたは '\ B'を探しているのでしょうか? '\ b'の反対側 – ctwheels

+0

' hello'が必要な場合は '[a-z] +'を使用してください。 – ctwheels

答えて

2

[\b]はバックスペースと[^\b]ないバックスペースを意味

\bは文字ではありません。文字クラスに含めることはできません。

ワード境界の否定はいずれもゼロ幅アサーションは、文字クラス内にその意味を失い\B

+0

Backspace?どういう意味ですか? –

+1

@SergioTulentsev:文字のバックスペース、8進数「010」または10進数「8」 – Toto

+0

私は気になるでしょう、それはそれを意味します。 TIL –

関連する問題