2016-05-28 4 views
1

誰かがスケジュール時間が2回あるかどうかを判断する正規表現を考え出すことができますか?RegEXは1回以上の時間があるかどうかを調べてからフォーマットします

例:

12:01 AM-3:00 AM 4:00 AM-9:00 AM 
12:00 AM-5:00 AM 10:00 AM-2:00 PM 
4:00 PM-7:00 PM 
10:30 AM-4:00 PM 
2:00 PM-5:00 PM 6:01 PM-8:01 PM 
5:00 PM-6:30 PM 7:01 PM-9:46 PM 
4:00 PM-10:45 PM 

私は何をしようとしていると最終的にやるでPMのとAMの間のスペースを取ると、それは次のように結果の1つの以上の時間があれば両方の時間を得る - を置くことを|私は現在、第二セットを見つけるめちゃくちゃにせずにいることをやって行く方法を考えることができないのです

12:01pm-3:00am|4:00am-9:00am 
12:00am-5:00am|10:00am-2:00pm 
4:00pm-7:00pm 
10:30am-4:00pm 
2:00pm-5:00pm|6:01pm-8:01pm 
5:00pm-6:30pm|7:01pm-9:46pm 
4:00pm-10:45pm 

:1つの以上の時間を持っているものの間は、AM/PMを小文字と最後の間のスペースを削除します回。私は常に行うことができます。

Regex.Replace(myTimeStr, "\s", "").toLower 

しかし、以上の1がある場合両方の時間を組み合わせてしまうことをやって...

答えて

1

は、私がここに置き換える2を使用して、より良いと思います。あなたはこの

Dim pattern1 As String = "(?<=\d)\s+(?=[AP])" 
Dim pattern2 As String = "(?<=M)\s+(?=\d)" 

Dim rgx1 As New Regex(pattern1) 
Dim rgx2 As New Regex(pattern2) 

Dim input As String = "12:01 AM-3:00 AM 4:00 AM-9:00 AM 4:00 AM-9:00 AM" 

Dim result As String = rgx2.Replace(rgx1.Replace(input, ""), "|").toLower 

Ideone Demo

+0

グレートたとえば、ロックを行うことができます!ありがとう! – StealthRT

+0

@StealthRTあなたはようこそ – rock321987

関連する問題