2016-03-23 21 views
-2

C#で正しく一致しません:正規表現は、私の現在のコードが正しく私の入力と一致していません

var getStatusInfo = message.ToString(); 
Console.Write(getStatusInfo);  
Regex getStatus = new Regex("[A-Za-z]"); 
string getStatus2 = getStatus.Match(getStatusInfo).Value; 
getStatus2 = getStatus2.Replace("addstatus", ""); 
SuicideStatusMagic = getStatus2; 
Bot.SteamFriends.SendChatMessage(OtherSID, type, "Status added!: " + SuicideStatusMagic); 

例:

入力:addstatus swag

予想される出力:Status added: Swag

実際の出力: Status added: a

何が問題になりますか?

+5

正規表現は1文字にのみ一致します。 – ryanyuyu

答えて

0

正規表現[A-Za-z]は、正確に1文字に過ぎません。あなたは文字の配列をしたい場合は、[A-Za-z]+を使用します(プラスの意味:。どんなに多くの前の式の少なくとも一つ出現、)あなたも空白を許可したい場合は、定期的にチェックするために[A-Za-z\s]+

使用https://regex101.com/を使用しますあなたが使っている表現。

+2

または.Net正規表現エンジンを使用する場合は、次のようにします。http://regexstorm.net/tester –

+0

ええ、ええ。何か、それはその "スワッグ"の部分を取得していないわけではありません。 addstatusを削除し、基本的に文字列SuicideStatusMagicに何も追加しません。何故ですか? addstatusとswagの間のスペースのためですか? – Jartsu

+0

はい、使用する正規表現ではスペースを使用できないためです。 – NineBerry

関連する問題