webForumDet fria alternativet

Regexp matchning ord, plocka bort mellanslag

Webbutveckling

5 svar · 519 visningar · startad av colione

Medlem sedan juni 20014 421 inlägg
Frågan#1

Hej skulle behöva hjälp med att plocka bort mellanslagen och ersätta dem med ett CRLF. Det kan vara olika många mellanslag mellan resultaten som dyker upp.

Hej                         jag                          heter
anna-karin               plus                        efternamn

Resultatet ska alltså bli:

Hej
jag
heter
anna-karin
plus
efternamn

Tack på förhand.
Språket som gäller är VBScript.

Medlem sedan aug. 20039 340 inlägg
#2
	Set z = new Regexp

	with z
		.Pattern = "\W+"
		.Global = true
	end with

	msgbox z.Replace("Hej                         jag                          heter", VbCrLf)
Medlem sedan juni 20014 421 inlägg
#3

Snärtigt, tack.

Medlem sedan maj 200010 687 inlägg
#4

Pattern "\W+" kommer matcha på allting utom bokstäver och underscore. Så t.ex. - i anna-karin och åäö kommer bytas ut mot radbrytningar.
Så "\n+" funkar nog bättre som pattern.

Medlem sedan juni 20014 421 inlägg
#5

Hmm, nu har jag en fortsättningsfråga.

Jag kan även få in resultat som ser ut så här:

Foo     bar
Foo2    bar2
Viktigt     Viktig text
Foo3    Bar3
Foo4    Bar4

Nu behöver jag matcha Viktigt samt plocka ut det som står X antal mellanslag efter detta och stripa bort resten.

Medlem sedan dec. 20025 483 inlägg
#6
re.ignorecase = true
re.pattern = "viktigt\s*([^\n\r]+)"

set m = re.execute(TXT)

if m.count > 0 then
  response.write m(0).submatches(0)
end if
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)