olsnMedlem sedan sep. 20093 inlägg 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)
prebenMedlem sedan mars 2009452 inlägg http://weitz.de/regex-coach/
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.
olsnMedlem sedan sep. 20093 inlägg Det här fungerade kanon! Tack!
nitro2k01 skrev:
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 ;)
voigtann1 skrev:
ä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.
olsnMedlem sedan sep. 20093 inlägg
voigtann1 skrev:
ä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