Diakritische tekens - Regex
Erik Rijk
19/08/2018 12:53:21Hallo,
Ik krijg wat data aangeleverd waar ik wat regex op moet toepassen.
Het volgende gebeurd: Text: Tijdens deze vakantie leert u het echte SiciliëKennen!
Moet worden: Text: Tijdens deze vakantie leert u het echte Sicilië Kennen!
/u
\p{L}
Qua regex heb ik vanalles geprobeerd maar zonder resultaat. Het meest ideale zou zijn dat het via een 'korte' regex kan ipv een script waar ik alle diakritische karakters in zet op dan ga matchen.
PHP 7.2.8
Wie heeft de tip/oplossing?!
Ik krijg wat data aangeleverd waar ik wat regex op moet toepassen.
Het volgende gebeurd: Text: Tijdens deze vakantie leert u het echte SiciliëKennen!
Moet worden: Text: Tijdens deze vakantie leert u het echte Sicilië Kennen!
/u
\p{L}
Qua regex heb ik vanalles geprobeerd maar zonder resultaat. Het meest ideale zou zijn dat het via een 'korte' regex kan ipv een script waar ik alle diakritische karakters in zet op dan ga matchen.
PHP 7.2.8
Wie heeft de tip/oplossing?!
PHP hulp
26/11/2024 10:26:20Thomas van den Heuvel
19/08/2018 14:54:41Hm, wellicht door aan alle non-ascii karakters die niet gevolgd worden door een spatie-symbool een spatie toe te voegen?
Inspiratie:
https://stackoverflow.com/questions/5793547/regex-diacritics-problem
https://gathering.tweakers.net/forum/list_messages/1369936
Mogelijk kan dit anders/eenvoudiger/korter, regexes zijn niet mijn sterkste punt.
EDIT: een betere oplossing zou natuurlijk kloppende invoer zijn, dit is symptoombestrijding :p.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
header('Content-Type: text/html; charset=UTF-8');
$regex = '#([^\x20-\x7F])(\S)#u';
$replacement = '\1 \2';
$in = 'Dit is een të st. $$$$ Huéeee';
echo preg_replace($regex, $replacement, $in);
?>
header('Content-Type: text/html; charset=UTF-8');
$regex = '#([^\x20-\x7F])(\S)#u';
$replacement = '\1 \2';
$in = 'Dit is een të st. $$$$ Huéeee';
echo preg_replace($regex, $replacement, $in);
?>
Inspiratie:
https://stackoverflow.com/questions/5793547/regex-diacritics-problem
https://gathering.tweakers.net/forum/list_messages/1369936
Mogelijk kan dit anders/eenvoudiger/korter, regexes zijn niet mijn sterkste punt.
EDIT: een betere oplossing zou natuurlijk kloppende invoer zijn, dit is symptoombestrijding :p.
Gewijzigd op 19/08/2018 14:56:54 door Thomas van den Heuvel