---
title: "Enkelt regexp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/185098-enkelt-regexp"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Gildebrand"
published: "2010-11-01T13:02:49.000Z"
updated: "2010-11-11T16:28:27.000Z"
replies: 13
views: 861
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/dotnet/185098-enkelt-regexp"
---

# Enkelt regexp

## #1 — Gildebrand, 2010-11-01T13:02Z

Men jag behärskar tyvärr inte "språket". har texten 

```
9;#Namn efternamn;#1;#domän\användarnamn;#10;#Namnare efternamnare
```

Som jag vill få ut till 

- Namn efternamn
- domän\\användarnamn
- Namnare efternamnare

Hur ska jag skriva uttrycket för att få till det?

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

## #2 — voigtann1, 2010-11-01T13:25Z

Är det alltid samma nummer på 9, 1 och 10?

```
9;#([^;]+);#1;#([^;]+);#10;#([\w\W]+)
```

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

## #3 — Gildebrand, 2010-11-01T13:36Z

Nej tyvärr, har med hjälp av lite olika sidor, listat ut lite grann av hur det funkar. Med följande så får jag ut de namnen som listas som användarnamn

```
DOMÄN\\[A-Öa-ö0-9]*[^;]
```

 Men när jag lägger på \[^#\] innan "Domän" så får den inte längre några träffar :/

```
(DOMÄN\\[A-Öa-ö0-9]*)|([A-Öa-ö ]*)
```

 Funkar inte heller, inget matchas

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

## #4 — voigtann1, 2010-11-01T13:39Z

\[^#\] säger bara att du skall hämta ut ett tecken som inte är "#" så det är rätt klart att den inte hittar på:

```
[^#]DOMÄN\\[A-Öa-ö0-9]*[^;]
```

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

## #5 — Gildebrand, 2010-11-01T13:43Z

Hur ska då min regexp se ut? För att få ut både de som anges med domännamn och vanligt namn?

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

## #6 — voigtann1, 2010-11-01T13:46Z

Hur är strängen? Är det någon konstant som man kan ha som referens? Jag utgick ifrån att 9, 1 och 10 är alltid samma. 

```
#domän\\([^;]+)
```

Om det alltid är #domän innan den träff du vill få ut ($1 för grupp namn).

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

## #7 — Gildebrand, 2010-11-01T13:53Z

De enda konstanterna är # i början av strängen och ; i slutet. Är bara det imellan jag vill ha ut.

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

## #8 — voigtann1, 2010-11-01T13:56Z

\#(\[^;\]+);

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

## #9 — Gildebrand, 2010-11-01T14:59Z

Problemet med den är ju att den plockar siffrorna också (#10;), Ska bara tillägga att jag inte vill ha med tecknen # och ;, utan bara namnen. Jag har lyckats skriva en som enligt detta fina lilla verktyg ska funka: <http://gskinner.com/RegExr/>
Då plockar den ut allt jag vill ha, men när jag kör i ASP.NET, så skippar den siffrorna i DOMÄN\\AG5079 så det blir bara DOMÄN\\AG

Regexpen ser ut såhär

```
(DOMÄN\\[A-Öa-ö0-9]*[^;])|([^#0-9;]+)
```

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

## #10 — voigtann1, 2010-11-01T15:09Z

Nu få du ta ett steg tillbaka, du vill alltså hitta där #DOMÄN\\(whatever); och inte #(whatever);?

```
#DOMÄN\\([^;]+);
```

 ge resultatet på följnade test:

> 9;#Namn efternamn;#1;#DOMÄN\\**användarnamn**;#10;#Namnare efternamnare
> \#DOMÄN\\**AG5079**;

Träff på **användarnamn** och **AG5079**

(DOMÄN\\\\\[A-Öa-ö0-9\]\*\[^;\])\|(\[^#0-9;\]+)

Om du bryter ut den så säger du matchar antigen domän\\(och så få tecken som möjligt som är a-ö + 0-9) eller något som inte är # och 0-9.

Vill du alltid ha DOMÄN\\ med i dina träffar?

```
#(DOMÄN\\[^;]+);
```

eller är det:

```
#([\D][\w\s\\]*);
```

du är ute efter? För att få:

> 9;#**Namn efternamn**;#1;#**domän\\användarnamn**;#10;#**Namnare efternamnare**;#**domän\\AG5079**;

Då måste den börja med # + INTE är ett tal på första tecknet.

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

## #11 — Gildebrand, 2010-11-01T15:29Z

Vill ha ut följande 

```
9;#[B]Namn efternamn[/B];#1;#[B]domän\användarnamn[/B];#10;#[B]Namnare efternamnare[/B]
```

Namnen och användarnamnen varierar förstås

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

## #12 — voigtann1, 2010-11-01T15:52Z

Och hur vill du komma åt varje träff då? Vad fungera inte?

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

## #13 — GunnarD, 2010-11-01T16:03Z

Lätt modifierad variant av voigtann1's första uttryck:

```
#([^;]+);#1;#([^;]+);#\d+?#([\w\W]+)
```

POC:

```
#!/usr/bin/perl

$a="9;#Namn efternamn;#1;#doman\\anvandarnamn;#10;#Namnare efternamnare";

$a =~ /\d+?;#([^;]+);#1;#([^;]+);#\d+?;#([\w\W]+)/;

print $a;
print "\n";
print $1." - ". $2." - ".$3;
print "\n";
```

Vilket genererar:

```
9;#Namn efternamn;#1;#doman\anvandarnamn;#10;#Namnare efternamnare
Namn efternamn - doman\anvandarnamn - Namnare efternamnare
```

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

## #14 — Sjodahl, 2010-11-11T16:28Z

Regexp: Enligt 10W32

... RADERAT!

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/185098-enkelt-regexp
