[REGEX] Failure in regex
Ik ben bezig een INI highlighter te maken, maar bij het highlighten van een sectie kom ik in de problemen.
Neem nou dit INI bestand:
[TestSectie]
key = value
sleutel = waarde
orgisatie = "Jeltsoft Enterprises"
;këy = "valüê"
;k_y = value
[DebugMenu]
xTop = 23
yTop = 45
color = red
title = "DebugMenu"
Dat highlight ie als, hij wordt gehighlight als een waarde van een sleutel:
="color: #A52A2A;">[TestSectie]
key= value
sleutel= waarde
orgisatie= "Jeltsoft Enterprises"
;këy = "valüê"
;k_y = value
="color: #A52A2A;">[DebugMenu]
xTop= 23
yTop= 45
color= red
title= "DebugMenu hacked by Sebazzz"
Dit zijn de codes:
EDIT: Commentaar en tabs weggehaalt
Neem nou dit INI bestand:
[TestSectie]
key = value
sleutel = waarde
orgisatie = "Jeltsoft Enterprises"
;këy = "valüê"
;k_y = value
[DebugMenu]
xTop = 23
yTop = 45
color = red
title = "DebugMenu"
Dat highlight ie als, hij wordt gehighlight als een waarde van een sleutel:
="color: #A52A2A;">[TestSectie]
key= value
sleutel= waarde
orgisatie= "Jeltsoft Enterprises"
;këy = "valüê"
;k_y = value
="color: #A52A2A;">[DebugMenu]
xTop= 23
yTop= 45
color= red
title= "DebugMenu hacked by Sebazzz"
Dit zijn de codes:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$ini = preg_replace('#(.*?)\[(.+?)\](.*?)#e', '$this->section("\2");', $ini);
$ini = preg_replace('#^(.+?)=(.*?)$#me', '$this->keyval("\1", "\2");', $ini);
protected function section($section="") {
if (strpos($section, ';') === 0) {
return '['.$section.']';
}
if (preg_replace('#[a-z0-9]#i', '', $v) != '') {
return 'err';
}
return '<span style="color: '.$this->color['section'].';">['.$section.']</span>';
}
?>
$ini = preg_replace('#(.*?)\[(.+?)\](.*?)#e', '$this->section("\2");', $ini);
$ini = preg_replace('#^(.+?)=(.*?)$#me', '$this->keyval("\1", "\2");', $ini);
protected function section($section="") {
if (strpos($section, ';') === 0) {
return '['.$section.']';
}
if (preg_replace('#[a-z0-9]#i', '', $v) != '') {
return 'err';
}
return '<span style="color: '.$this->color['section'].';">['.$section.']</span>';
}
?>
EDIT: Commentaar en tabs weggehaalt
Gesponsorde koppelingen:
*bump* *schop*
Secties worden toch helemaal niet gehighlight? De edittor die ik gebruik highlight zo:
http://img133.imageshack.us/my.php?image=highlight1as.gif
Misschien kun je anders even de kleuren erbij melden hoe je wilt hightlighten...
http://img133.imageshack.us/my.php?image=highlight1as.gif
Misschien kun je anders even de kleuren erbij melden hoe je wilt hightlighten...
Gewijzigd op 22/02/2006 19:57:00 door Eric Cartman
Misschien moet je in de 2e preg_replace niet zoeken op .+? (oftewel, op alles) maar alleen op alfanummeriek, dus geen spaties en geen >, en ook geen " in de key.



