相关疑难解决方法(0)

替换重音字符php

我试图用正常替换替换重音字符.以下是我目前正在做的事情.

    $string = "Éric Cantona";
    $strict = strtolower($string);

    echo "After Lower: ".$strict;

    $patterns[0] = '/[á|â|à|å|ä]/';
    $patterns[1] = '/[ð|é|ê|è|ë]/';
    $patterns[2] = '/[í|î|ì|ï]/';
    $patterns[3] = '/[ó|ô|ò|ø|õ|ö]/';
    $patterns[4] = '/[ú|û|ù|ü]/';
    $patterns[5] = '/æ/';
    $patterns[6] = '/ç/';
    $patterns[7] = '/ß/';
    $replacements[0] = 'a';
    $replacements[1] = 'e';
    $replacements[2] = 'i';
    $replacements[3] = 'o';
    $replacements[4] = 'u';
    $replacements[5] = 'ae';
    $replacements[6] = 'c';
    $replacements[7] = 'ss';

    $strict = preg_replace($patterns, $replacements, $strict);
    echo "Final: ".$strict;
Run Code Online (Sandbox Code Playgroud)

这给了我:

    After Lower: éric cantona
    Final: ric cantona
Run Code Online (Sandbox Code Playgroud)

上面给了我ric cantona我想要的输出 …

php string preg-replace non-ascii-characters

74
推荐指数
12
解决办法
14万
查看次数

如何在perl正则表达式(regexp)中匹配重音和波形符?

用户输入一组带有重音和波浪号的名称:

Renato Núñez, David DeJesús, and Edwin Encarnación 
Run Code Online (Sandbox Code Playgroud)

我的数据库为这些人设置了英文名称

@names = ('Renato Nunez','David DeJesus','Edwin Encarnacion');
Run Code Online (Sandbox Code Playgroud)

我希望对这些名称进行正则表达式匹配.

$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
    print "found:$name\n" if ($name =~ /$string/);
}
Run Code Online (Sandbox Code Playgroud)

如目前所示,我没有比赛.

我尝试了这个,但它没有用.

$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
    $name =~ s|a|[áa]|;
    $name =~ s|e|[ée]|;
    $name =~ s|i|[íi]|;
    $name =~ s|o|[óo]|;
    $name =~ s|u|[úu]|;
    $name =~ s|n|[ñn]|;
    # Originally: print "found:$name\n" if ($name =~ /$string/);
    # …
Run Code Online (Sandbox Code Playgroud)

regex unicode perl localization

11
推荐指数
1
解决办法
1万
查看次数