---
title: "Regular Exp."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/64649-regular-exp"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "icaaq"
published: "2003-01-13T10:02:57.000Z"
updated: "2003-01-16T20:35:43.000Z"
replies: 16
views: 374
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/64649-regular-exp"
---

# Regular Exp.

## #1 — icaaq, 2003-01-13T10:02Z

Hur ska jag göra för att hitta alla länkar på en sida mha RegExp? Det är till en httpWebRequest som jag har gjort (se tidigare inlägg)

mvh icaaq

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

## #2 — Viktor, 2003-01-13T10:30Z

Såhär :)

```
Regex r=new Regex("<a[^>]*>");
Match m=r.Match(your_string);
while(m.success)
{

};
```

Vill du ha mer hjälp med hur du sedan får ut allt med match så får du vänta några timmar tills jag kommer hem så jag kan titta i min kod :)

/Viktor

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

## #3 — icaaq, 2003-01-13T10:34Z

Så här långt har jag kommit, vet ej om det funkar än:

```
[red]
private string[] _fetchlinks(string webres)
		{
			Regex regexp = new Regex("\<a href=\"events2.lasso?-Token.ID=(.*?)\"\>");
			Match m = regexp.Match(webres);
			while(m.Success == true)
			{
				foreach(Capture c in m.Captures)
				{
					string[] links =+ m.Value.ToString();
				}
			}
			return links;
		}[/red]
```

men jag får **Unrecognized escape sequence**.

Nått du kan hjälpa mig med?

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

## #4 — Viktor, 2003-01-13T10:39Z

För att göra en excape i regex (inte bara i strängen) så måste du gör två \\\\, altså

```
Regex regexp = new Regex("\\<a href=\"events2.lasso?-Token.ID=(.*?)\"\\>");
```

/Viktor

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

## #5 — icaaq, 2003-01-13T10:45Z

ok.....har inte använt RegExp nått tidigare....

Nästa......

Hur lägger jag ihop alla träffar i min array?

```
[red]
private string[] _fetchlinks(string webres)
		{
			Regex regexp = new Regex("\<a href=\"events2.lasso?-Token.ID=(.*?)\"\>");
			Match m = regexp.Match(webres);
			while(m.Success == true)
			{
				foreach(Capture c in m.Captures)
				{
					[b]string[] links =+ m.Value.ToString();[/b]
				}
			}
			return links;
		}[/red]
```

Den feta funkar ju inte

mvh icaaq

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

## #6 — Viktor, 2003-01-13T11:01Z

får återkomma när jag är hemma, mycket att göra nu i skolan :)

/Viktor

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

## #7 — icaaq, 2003-01-13T11:03Z

Behövs inte då jag löste det så här

```
[red]
private ArrayList _fetchlinks(string webres)
{
	Regex regexp = new Regex("\\<a href=\"events2.lasso?-Token.ID=(.*?)\"\\>");
	Match m = regexp.Match(webres);
	ArrayList links = new ArrayList();
	while(m.Success == true)
	{
		links.Add(m.Value.ToString());
	}
	return links;
}
[/red]
```

mvh icaaq

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

## #8 — icaaq, 2003-01-13T11:27Z

Jag var och slängde i mig lite mat, tanken slog mig då varför inte ta hela länken??

hur skulle ett sådant pattern se ut??

```
[red]
<a href="events2.lasso?-Token.ID=XXXXX" class="meny1">XXX XXX</a>
[/red]
```

mvh icaaq

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

## #9 — P, 2003-01-13T14:18Z

Håller ni på med sånt här i skolan?

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

## #10 — Viktor, 2003-01-13T14:43Z

> **P skrev:**
>
> Håller ni på med sånt här i skolan?

Om jag gjorde det skulla jag ha kunnat svara från skolan :)

Det här är en ren gissning

```
<a href="[^\\"]*" class="meny1">[^<]*</a>
```

Det borde bli "\<a href="HITTA_VAD_SOM_HELLST_STANNA_VID\_"" class="meny1"\>HITTTA_VAD_SOM_HELLST_STANNA_VID\_\< \</A\>"

/Viktor

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

## #11 — icaaq, 2003-01-13T16:53Z

Attans det vill inte riktigt funka för mig, nu har jag denna kod för att hämta hen en sida:

```
[red]
private string _fetchurl(string url)
{
	HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
	WebResponse WebRes = WebReq.GetResponse();
	Stream st = WebRes.GetResponseStream();
	StreamReader sr = new StreamReader(st);
	string _fetchedstring = HttpUtility.HtmlEncode(sr.ReadToEnd());
	return _fetchedstring;
}
[/red]
```

Resultatet av denna ska jag sen i denna hämta ut lite olika saker, i detta fallet lite länkar

```
[red]
private ArrayList _fetchlinks(string webres, string pattern)
{
	Regex regexp = new Regex(pattern);
	Match m = regexp.Match(webres);
	ArrayList links = new ArrayList();
	while(m.Success == true)
	{
		links.Add(m.Value.ToString());
	}
	return links;
}
[/red]
```

Som jag anropar så här

```
[red]
_news = _fetchlinks(_getmainstream, "\\<a href=\"news2.lasso?-Token.ID=(.*?)\" class=\"meny1\"\\>(.*?)<\\/a>");
[/red]
```

Det är här jag tror att det blir fel för att jag vet att jag får en string av fetchurl.

Problemet ligger alltså att jag inte får några träffar.....

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

## #12 — renholm, 2003-01-13T17:57Z

> **Viktor skrev:**
>
> För att göra en excape i regex (inte bara i strängen) så måste du gör två \\\\, altså
>
>
> ```
> Regex regexp = new Regex("\\<a href=\"events2.lasso?-Token.ID=(.*?)\"\\>");
> ```
>
> 
> 
> /Viktor

Har även för mig att du kan lägga till ett litet @ för att det ska gå att skriva vanlig text och ignorera \\n \\ osv.

Blir då så här

```
Regex regexp = new Regex(@"\<a href=\"events2.lasso?-Token.ID=(.*?)\"\>");
```

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

## #13 — Viktor, 2003-01-13T18:41Z

> **renholm skrev:**
>
> Har även för mig att du kan lägga till ett litet @ för att det ska gå att skriva vanlig text och ignorera \\n \\ osv.
> 
> Blir då så här
>
>
> ```
> Regex regexp = new Regex(@"\<a href=\"events2.lasso?-Token.ID=(.*?)\"\>");
> ```

 :i 
Det är altså därför det är ett @ framför alla fil namn i fil access exempel :)

/Viktor

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

## #14 — Pace, 2003-01-13T19:40Z

Med den regexpen borde du väl träffa alla tecken, det är väl Viktors variant du bör använda dig av istället?

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

## #15 — icaaq, 2003-01-13T22:52Z

Nu har jag ett pattern som fungerar men vad som inte fungerar är min webRequest. Den ser ut så här

```
[red]
private string _fetchstream(string url)
{
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebResponse WebRes = WebReq.GetResponse();
Stream st = WebRes.GetResponseStream();
StreamReader sr = new StreamReader(st);
string _fetchedstring = sr.ReadToEnd();
return _fetchedstring;
} [/red]
```

men om jag ska hämta en sida som har en ISO-8859-1 encoding så funkar inte RegExp:n

Nån som har en lösning på detta delikata problem

mvh icaaq

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

## #16 — icaaq, 2003-01-14T09:13Z

Jag forsätter, är denna rätt

```
[red]
Regex r = new Regex(@"<a href=""(\.?)""");
[/red]
```

Jag vill alltså ta ut alla 
**\<a href="xxx"**
mvh icaaq

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

## #17 — icaaq, 2003-01-16T20:35Z

Fortsätter med en ny regexp ;)
jag har

```
[red]
Match regex = Regex.Match(Request.Cookies["scrambledegg"].Value.ToString(), @"\.(.*?)8user");[/red]
```

Hur gör jag för att endast få ut värdet mellan punkten(.) och 8user??

mvh icaaq

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/64649-regular-exp
