webForumDet fria alternativet

Regexp mellanrum mellan parenteser?

PHP

5 svar · 564 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

How
Jag vill med preg_replace få bort alla mellanrum mellan parenteserna.

ett två tre (ett två tre) fyra fem (sex sju)
Skall alltså bli
ett två tre (etttvåtre) fyra fem (sexsju)

Mellan parenteserna kan det vara alla tecken inkl. tab och ny rad etc.
Tips?
Har testat med:
"/\((\s+)\)/is" Men det funkar inte

Medlem sedan jan. 2005953 inlägg
#2

Och med "funkar inte" menar du? Är strängen oförändrad efter att du kört preg_replace()? Visa gärna kodraden med anropet till preg_replace()

Medlem sedan okt. 20041 556 inlägg
#3

Strängen ser likadan ut som innan.

Medlem sedan juni 20031 837 inlägg
#4

med ditt uttryck vill du bara matcha ( )
dvs det får inte finnas några andra tecken än t.ex. mellanrum och tabb.
kan tyvärr inte komma på en lösning för det med regexp.

Medlem sedan juni 20019 519 inlägg
#5
<?
$subject = "ett två tre (ett två tre) fyra fem (sex sju)";
$result = preg_replace_callback('/\(([^)]+)\)/i', 'space_replacement', $subject);

function space_replacement($groups) {
	return str_replace(" ", "",$groups[0]);
}

echo($result); //ett två tre (etttvåtre) fyra fem (sexsju)

?>
Medlem sedan okt. 20041 556 inlägg
#6

voigtann1: Du är grym på Regexp! Tack!

273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)