---
title: "Matcha hyperlänk"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/157050-matcha-hyperlänk"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "pirajan"
published: "2007-02-11T10:56:48.000Z"
updated: "2007-03-19T20:22:32.000Z"
replies: 7
views: 478
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/programmering/157050-matcha-hyperlänk"
---

# Matcha hyperlänk

## #1 — pirajan, 2007-02-11T10:56Z

Hej!
Har försökt hitta ett bra mönster för att få ut en hel hyperlänk ur källkod mha regexp. 

Jag har hittat följande:

```
/a href="?([:\/\w\s\d\.]*)"?/i
```

 

Detta gör dock att länkar med andra attribut som exempelvis "class" inte matchar. 

Jag vill alltså att följande ska matcha:

```
<a href="*" *>*</a>
```

Där \* får vara vad som helst. 

Någon som kan tipsa om förbättringar.

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

## #2 — Peter S, 2007-02-11T13:42Z

Hej!

```
/<a(?: (?:[a-z]+)="[^"]*")+>.*?<\/a>/i
```

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

## #3 — pirajan, 2007-02-11T13:46Z

Tack för svaret! 
Jag gjorde enligt följande, men får då även matchning på "javascript"-länkar såsom 

```
<a href="javascript:foo()">rajraj</a>
```

Regular expression:

```
/href="?([:\/\w\s\d\.\?\=\&\-]*)"?\W/i
```

Nu får jag även länkar som har andra attribut före href.

Finns det något sätt att slippa "javascript"-länkarna?

Jag vill alltså ta ut matchningen, själva URL:en. Experimenterar med Ruby.

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

## #4 — Peter S, 2007-02-11T14:01Z

Testa

```
/<a href="(?!javascript:)([^"]*)"(?: (?:[a-z]+)="[^"]*")*>.*?<\/a>/i
```

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

## #5 — pirajan, 2007-02-11T14:22Z

Lade till .\*? mella a och href och nu verkar det fungera som det ska!

```
/<a.*?href="(?!javascript:)([^"]*)"(?: (?:[a-z]+)="[^"]*")*>.*?<\/a>/i
```

Men nu får jag ett annat problem. Länkar till ankare (#ankare) kommer med. Hur får jag bort # och det som står efter i URL:en? 

```
<a id="test" href="j.htm#ankare">Till ny sida</a>
```

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

## #6 — Csson, 2007-02-11T21:41Z

Det lättaste är ju att göra det i två steg. När du väl har din länk i en variabel rensar du bara allt från # och framåt:

/^(\[^#\]\*)#\*$/

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

## #7 — Peter S, 2007-02-13T07:08Z

```
/<a(?: (?:[a-z]+)="[^"]*")* href="(?!javascript:)([^"]*?)(?:#[^"]*)?"(?: (?:[a-z]+)="[^"]*")*>.*?<\/a>/i
```

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

## #8 — nitro2k01, 2007-03-19T20:22Z

Flyttat från Regular Expressions på grund av att provtiden för forumet har gått ut

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

---

Tråden på webben: https://www.webforum.nu/amne/programmering/157050-matcha-hyperlänk
