2016-03-23 9 views
3

regexr.comで正規表現を学んでいますので、パターンにマッチさせようとすると恥ずかしがるほど哀れです。なぜ、/([o]) w +/gが単語に一致しないのですか

ウェブサイトは、正規表現の文の各構成要素についての説明を提供していますが、私は、この式は原因を特定できないよ:

/([o])\w+/g「が」言葉のどの部分と一致していません。

regexr

私の理解では、[o]は(文字o\wスイッチを一致させるべきであるということですそれとも...旗?オプション?)は単語に一致するように指示します。

私もそれはむしろ手紙oを含む単語全体よりもワード(単語ようこそ例えばome))内o後にのみoと文字が一致する理由の説明の恩恵を受けるだろう。

最後に、+の説明は、それが「マッチ1または前のトークンのより多くの」トグルこれはo後にのみ1文字が一致した場合に制御すると思われる、または文字の全てながらにおけるo後を意味していることを私に伝えます単語が一致します。これについての説明は非常に高く評価されます。

初心者の方にはお詫び申し上げます。

+0

'\ w'は単語文字です(普通はアンダースコアの英数字です)ので、' to'の後に単語文字がないので 'to'は'/[o] \ w +/g'と一致しません。 – BeyelerStudios

+0

@BeyelerStudiosありがとう、もう少し説明できますか?つまり、一致した単語の中の他の文字と、一致した文字の後に来る文字を一致させることを意味しますか? –

+1

@ Hack-R: '\ w'は' [a-zA-z0-9_] 'の短縮形です。 '\ d'のように、' [0-9] 'の短縮形です。 http://www.regular-expressions.info/shorthand.htmlを参照してください。 –

答えて

6

\wはスイッチではなく、単語文字の文字クラスです。 \wの正確な意味はシステムによって異なりますが、最低でも[A-Za-z0-9_]と一致する必要があります。あなたの例では"to"の文字の"o"の後に空白があり、これは単語ではない文字です。 +修飾子には、"o"に続く1つ以上の単語文字が必要なため、"to"という単語は一致しません。

+1

ああ、ありがとうございました。だから、 'o'は単語 'to'に入っていますが、 '\ w'は一致した文字の後に** next **文字が必要なので一致しません。 –

+0

@ Hack-Rはい、まさにそうです。 – dasblinkenlight

+0

パーフェクト、ありがとうございます。最低時間が7分で終わると、これを解決策として受け入れます。 –

2

実際に\b\w+\bは、toと一致します(towardsまたはtoeには含まれません)。
\bは単語境界であり、\wは任意の単語文字と一致します。 \w+は、少なくとも1つの単語文字と無制限に連続して一致します。
RegexOneは、正規表現を学習するのに適しています。

+0

ありがとうございます。私はそのウェブサイトを見直します。あなたが@ dasblinkenlightが私のためにそれについていくつかの光を当てていると思うが、あなたが助けるだろう質問の文についてもう少し説明を加えることができれば。 –

+2

ニース、しかし*なぜ*。 OPは正規表現のいくつかの側面を把握していないようで、ここで理解を求めています –

+0

@ᵈˑᵈˑ:そうです。 – Jan

関連する問題