2017-09-09 8 views
0

の間にスペースを挿入すると、数字とAM/PM記号の間にスペース(空白)を挿入しようとしています。文字列 "5pm"または "5am"を指定して、時間とAMPM指定子

は、しかし私は、このすべてが「17:00」を削除し、何も(空)に置き換えられない次の正規表現置換に

string pattern = @"((([1-9])|(1[0-2]))(A|P|a|p)(M|m))"; 
string replacement = "$1"; 
text = Regex.Replace(text, pattern, replacement); 

を持っています。

私は目標を達成するために置換変数に何を入れるべきかわかりません。

正規表現を使ってマッチグループを取得してから、挿入する文字列演算を行うことができますが、可能であれば正規表現で何か新しいことを学びたいと思います。

+0

どの言語がこれですか(試してみるために...)? – 82Tuskers

+0

これはC#用です。 – NiteLordz

+2

なぜ正規表現ですか?これは、 'var time =" 5pm ";' 'と' 'time = time.Replace(" pm "、" pm ")のように行うことができます。解説のために 'Replace(" pm "、" pm ")' –

答えて

2
string testString = "any string here 5pM 10 Am"; 
testString = Regex.Replace(testString, "(\\d)(AM|PM)", "$1 $2", RegexOptions.IgnoreCase); 

出力は次のようになります。

任意の文字列、ここ5ピコモル10アム

0

正規表現を使用する場合は、次のように動作します。([0-2]{0,1}[0-9])([AaPp][Mm])私にそれがあることを知らせてください。

0

、より複雑なパターンがある場合には、正規表現をよりよく使用されています。

string.Replace簡単な交換が必要な方法です。

var st = "5pm or 5am"; 
st = st.Replace("pm", " pm").Replace("am", " am"); 
+1

コードを説明するためにあなたの答えを編集してください。 – bfontaine

関連する問題