2012-02-13 11 views
0

私が持っているヘルパー拡張で次は:正規表現の文字列(文字を取り出し、スペースに置き換える)

return Regex.Replace(str, 
"(?<=[a-z])(?<x>[A-Z])|(?<=.)(?<x>[A-Z])(?=[a-z])|(?<=[^0-9])(?<x>[0-9])(?=.)", 
" $1"); 

効果的になりますどの

WhateverIPutInToIt

レンダリング

私はそれぞれ適切な単語を大文字にしたくないことを除いて、それに

を入れ何であれ

。しかし、私が大文字にしないと、スペースでレンダリングされません。

私が代わりに私が欲しいものをレンダリングするために

Whatever_I_put_into_it

のようなものを取るしようと思いました。私は "アンダースコア"文字を取り除いてスペースで置き換える正規表現(もし可能であれば)を行う方法を理解できません。

助けが必要ですか?

更新日: ご迷惑をおかけして申し訳ありません。これは、私が持っている列挙型を読み込み可能なものに変換するためのヘルパー拡張です。ドロップダウンリストとチェックボックスリストのヘルパーを使用しています。私はそれらのために10以上のenumを持っていて、それぞれを個別に行うことは痛みです。私はちょうどRegex.Replaceのコードを、私が後にしていることを達成する何かに修正できることを期待していました。

マインドあなた、私が行った場合

YouHave9OrMore

上記Regex.Replaceが吐き出すだろう(それは数を分割し "9")

あなたは9以上を有します

ありがとうございましたkコメント。

+0

私は単純に正規表現の代わりに置き換えるか、何かが欠けていますか? – PeeHaa

+4

この場合、 '' Whatever_I_put_into_it '.Replace(' _ '、' ') 'を使うことができますか? – porges

+0

'return Regex.Replace(str、" _ "、" ");'問題の内容は実際にはわかりません。 – Feysal

答えて

0

あなたはMatchEvaluatorパラメータを使用して正規表現を試してみましたか?

var finalstr = Regex.Replace(
    "WhateverIPutInToIt", 
    "(?<=[a-z])(?<x>[A-Z])|(?<=.)(?<x>[A-Z])(?=[a-z])|(?<=[^0-9])(?<x>[0-9])(?=.)", 
    me => " " + me.Value.ToLower() // <---- 
); 

これはWhatever i put in to itを出力します。

OR

YouHave9OrMore ==>You have 9 or more


あなたはそれあなたがこの

var finalstr = System.IO.SearchOption.TopDirectoryOnly.GetString(); 

public static class MyExtensions 
{ 
    public static string GetString(this Enum en) 
    { 
     return Regex.Replace(en.ToString(), "(?<=[a-z])(?<x>[A-Z])|(?<=.)(?<x>[A-Z])(?=[a-z])|(?<=[^0-9])(?<x>[0-9])(?=.)", me => " " + me.Value.ToLower()); 
    } 
} 
+0

あなたの 'Regex.Replace'が機能しました。ありがとう。 – REMESQ

+0

ようこそ。実際にはそれはあなたの正規表現です:)私は 'me =>" "+ me.Value.ToLower()を追加しました。 –

2

あなたはそのための正規表現を必要としないでください。

return str.Replace("_"," "); 
0

のようにそれを使用することができます拡張メソッド作る場合は、URL内のWebページのタイトルを表現しようとしていますページ自体の読みやすい形式でレンダリングするためにそれらを元に戻しますか?その場合は、HttpUtility.UrlPathEncodeHttpUtility.UrlDecodeのメソッドを使用する必要があります。これらはそれぞれ、"Whatever I Put In To It""Whatever%20I%20Put%20In%20To%20It"に変換して戻し、他の許可されていない文字(<および>など)も処理され、ほとんどのブラウザがアドレスバーに正しくエンコードされたシーケンスをレンダリングするという利点が追加されます。

+0

いいえ、それはチェックボックスリストまたはドロップダウンリストの列挙を正しく表示するヘルパー拡張です – REMESQ

関連する問題