---
title: "RegExp optional match"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/180949-regexp-optional-match"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "olsn"
published: "2009-10-27T17:09:16.000Z"
updated: "2009-10-28T17:03:36.000Z"
replies: 9
views: 1135
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/180949-regexp-optional-match"
---

# RegExp optional match

## #1 — olsn, 2009-10-27T17:09Z

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)
```

Permalänk: https://www.webforum.nu/p/180949

## #2 — preben, 2009-10-27T18:03Z

<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...

Permalänk: https://www.webforum.nu/p/2209573

## #3 — voigtann1, 2009-10-27T18:27Z

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.

Permalänk: https://www.webforum.nu/p/2209580

## #4 — nitro2k01, 2009-10-27T18:32Z

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.

Permalänk: https://www.webforum.nu/p/2209583

## #5 — olsn, 2009-10-28T10:19Z

Det här fungerade kanon! Tack!

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1485948)**
>
> 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.

Permalänk: https://www.webforum.nu/p/2209689

## #6 — voigtann1, 2009-10-28T10:23Z

ändra dock \\d\\d till \\d{2} ser inte direkt snyggt ut om man skall vara ärlig ;)

Permalänk: https://www.webforum.nu/p/2209692

## #7 — nitro2k01, 2009-10-28T10:58Z

> **[voigtann1 skrev:](https://www.webforum.nu/p/1486070)**
>
> ä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.

Permalänk: https://www.webforum.nu/p/2209696

## #8 — voigtann1, 2009-10-28T11:08Z

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.

Permalänk: https://www.webforum.nu/p/2209697

## #9 — olsn, 2009-10-28T12:22Z

> **[voigtann1 skrev:](https://www.webforum.nu/p/1486070)**
>
> ä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

Permalänk: https://www.webforum.nu/p/2209708

## #10 — onkelborg, 2009-10-28T17:03Z

\\d\\d är väl snyggare när det bara handlar om två? Blir så mycket skrot annars helt plötsligt

Permalänk: https://www.webforum.nu/p/2209727

---

Tråden på webben: https://www.webforum.nu/amne/asp/180949-regexp-optional-match
