1

特定の文字で始まらない場合にのみ、パターンを一致させる方法を知りたいと思っていました。「foo」には一致させたいのですが、「afoo」には一致させたくありません。そのためにはどのような正規表現演算子が必要ですか? 私は正しいものを見つけることができないようです。もしかしてアンカー?

たとえば、私は変更したい

foo foo afoo foo

bar bar afoo bar

ありがとう。

以下の答えは私の例では正しいですが、afoo ではなく /foo だったらどうでしょうか? それは同じように振る舞うように見えませんか?

4

2 に答える 2

4

あなたは後ろ向きの否定的な見方を探しているように聞こえます. あなたが言うなら、何かが一致する直前にない限り、それは(?<!expr1)expr2どんな一致にも一致します。例えば:expr2expr1

>> 'foo foo afoo foo'.gsub(/(?<!a)foo/, 'bar')
=> "bar bar afoo bar"
于 2013-03-27T18:13:31.787 に答える
3
str = "foo foo afoo foo"

str.gsub(/\bfoo/, "bar") #=> "bar bar afoo bar"
于 2013-03-27T17:43:14.443 に答える