2016-09-16 1 views
1

文字列からいくつかの単語を見つけて置き換えたいと思います。しかし、私は '@,#,?,!'のような特殊文字を含む言葉をスキップしたいと思います。私はそれを書いていますが、問題は最初の括弧も選択することです。C#いくつかの文字で始まる単語をスキップするための正規表現

例1: (Victoria Basement OR QVB @Victoria Basement #Victoria Basement ?#Victoria Basement!?)

更新: 例2: (Victoria Basement OR QVB @Victoria Basement #Victoria Basement ?#Victoria Basement!? Victoria [email protected] Victoria Basement's

正規表現: [^#@?!%$&]Victoria Basement

予想される出力:それは唯一の "Victoria Basement" ではない "(Victoria Basement" を選択する必要がありますか"@Victoria Basement #Victoria Basement ?#Victoria Basement!?"

+0

ここでいくつかのC#コードを共有してください。 –

+0

あなたがあなたの結果を述べた方法とあなたが尋ねた方法から、あなたはそれらの周りに特殊文字で単語を捕まえたいと思うように聞こえます。それ以外の場合は、なぜstring.Replace()ではなくregexを使用しますか? – Thumper

+0

Thumper、いいえ、私は交換するだけでは使用できません。ここで説明するために写真が大きくなっています。私はもう一度私の質問を更新しました。あなたは例2の答えをしていただけますか? –

答えて

0

これを試してください:((?<![#@\?!%$&])Victoria Basement)

それはここで働いてください:https://regex101.com/r/tV1rV5/1

[EDIT]の説明を追加します。

ので[^#@?!%$&]Victoria Basement[^#@?!%$&]のための1つの文字をキャプチャしますが、(Victoria Basementの場合には、それが一致しなくなりますそのキャラクターを(?<![#@\?!%$&])のように除外するには「​​」を実行する必要があります。キャプチャしたい場合は()ですべてをラップしてください! ;)

+0

ありがとうございました((?<![#@ \?!%$&])Victoria Basement \ b) –

+0

こんにちはAntoniさん、次のようなシナリオで私を助けてください:(Victoria Basement or QVB @Victoria Basement #Victoria地下室?#ビクトリア地下室?ビクトリア地下室@ビクトリア地下室 –

+0

はい、それでは一致させたいのですか? – antoni

関連する問題