Du verkar duktig på RegEx! Kanske detta programmet kan vara nåt för dig att testa?
Jag är inte helt hemma i denna matchen...
9 svar · 1 113 visningar · startad av olsn
Jag vill plocka ut 3 substrings ut 3 substrings ut en sträng som ser ut så här men kan variera lite.
pubDate = "2009-10-24T19:29:27.332+02:00"
De jag vill ha ut är:
1. 2009-10-24
2. 19:29:27
3. +02:00 (optional)
Dock ska jag kunna få ut #1 och #2 trots att #3 inte matchas.
Så här hade jag tänkt mig men #3 kommer aldrig med. Tar jag bort sista frågetecknet kommer det med ju, men då får jag inte ut #1 och #2 om #3 inte skulle finnas i strängen.
tag.Pattern = "^(\d{4}-\d\d-\d\d)T(\d\d:\d\d:\d\d).*((\+|-)(\d+:\d\d))?"
Set objMatch = tag.Execute(pubDate)
Datetime = objMatch.Item(0).Submatches(0) &" "& objMatch.Item(0).Submatches(1) &" "& objMatch.Item(0).Submatches(2)
Du verkar duktig på RegEx! Kanske detta programmet kan vara nåt för dig att testa?
Jag är inte helt hemma i denna matchen...
Mja, det finns ju bättre sätt att skriva ditt uttryck
Fråga, är det det ända som kommer finnas på radan, eftersom du ha ^ i början.
om det är så så kan den se ut:
(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2}).*((?:[\+-]\d+:\d{2})|$)
Tycks inte fungera i ASP, tror du behöver köra två matchningar för att du skall få igång det som du vill.
Verkar funka om man görer så här:
^(\d{4}-\d\d-\d\d)T(\d\d:\d\d:\d\d)\.?\d*([+\-]\d+:\d\d)?$
Edit: $ på slutet, inspirerat av voigtann1.
Det här fungerade kanon! Tack!
Verkar funka om man görer så här:
^(\d{4}-\d\d-\d\d)T(\d\d:\d\d:\d\d)\.?\d*([+\-]\d+:\d\d)?$Edit: $ på slutet, inspirerat av voigtann1.
ändra dock \d\d till \d{2} ser inte direkt snyggt ut om man skall vara ärlig ;)
ändra dock \d\d till \d{2} ser inte direkt snyggt ut om man skall vara ärlig ;)
Jag funderade också på det, men kom fram till att olsn nog gör så för att \d\d är ett tecken kortare.
det är enklare för en människa att läsa det, "jaha, nu är det två tal som skall vara här"... men det kanske är jag.
ändra dock \d\d till \d{2} ser inte direkt snyggt ut om man skall vara ärlig ;)
Hehe, jag insåg inte vilken stilmiss det var :e
\d\d är väl snyggare när det bara handlar om två? Blir så mycket skrot annars helt plötsligt