webForumDet fria alternativet

Regexp mellanrum mellan parenteser?

PHPur 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!

131 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)