2016-04-19 5 views
-2

piの後ろにないすべてのスペースを見つける.net-regexを作成するのに問題があります。指定された単語の後ろにないすべてのスペースを見つけるためにC#regex

これは、指定した文字列"y + pi + s + 1 = x"

である私は"(?!pi\s)\s"を試してみましたが、それはすべてのスペースを見つけ、「パイ」の後に1を除外しませんでした。

(?<!\bpi)\s 
+1

多分['\ s +(?!pi \ b)'](http://regexstorm.net/tester?p=%5cs%2b(%3f!pi%5cb)&i = y +%2b + pi +% 2b + s +%2b + 1 + 3d + x)それとも、 ''(?> pi \ b) '](http://regexstorm.net/tester?p=(%3f%3e%5cs%2b)(%3f!pi%5cb )&i = y +%2b +++ pi +%2b + s +%2b + 1 +%3d + x)? –

+1

私はあなたの質問を理解していません。期待される文字列の結果と現在の失敗した文字列結果を提供してください。 –

+0

@VisualVincent:それで私は答えを投稿しません - それは不明です。 * pi *!=という単語の後ろにないすべての空白を見つけて、 "pi" *の後ろにあるものを除外しませんでした。 ** **の背後にあるものは何ですか? –

答えて

1

を高く評価している.Net Regey Tester

を使用しましたそれに先行するスペースは、'p''i'''の前のスペースではなく、単に'p''i'

この正規表現は、このような Principiなどにも piで終わる長い言葉が先行スペースをスキップすることを

(?<!pi)\s 

注: -

修正は簡単です後読みから\sを削除します。あなたはこれらのマッチをしたくない場合は、piの前で\bを追加します。

(?<!\bpi)\s 

*後読みのためのあなたの構文が見つからないため<の正しいなかったことに注意してください。私はそれがタイプミスだと思う。

+1

迅速な返信をありがとうございます。魅力のように動作します。私はこのテキストを通して作業します。 – bitz

2

あなたの正規表現の問題は、*それが効果的にダブルスペースを探しているということです::ルック背後で\s 私は、すべてのヘルプが使用negative lookbehind

+0

彼はまた負のルックバックビハインドを使用していませんでした(彼はネガティブな先読みを使用していました) –

+0

@RobertMcKeeそれは公正な観察です。私はそれが誤植であると仮定して自動的に修正しましたが、正しいですが、質問の構文が正しくありません。 – dasblinkenlight

+0

@dasblinkenlight - 心配しないでください。私はアホです。 :-D私はちょうど私のワイヤーを交差させた。 – Colin

関連する問題