Regex 正则表达式使用不同语言的UMLAUT匹配所有单词字符

Regex 正则表达式使用不同语言的UMLAUT匹配所有单词字符,regex,perl,Regex,Perl,我想检查一个人的名字是否有效。 它应该检查拉丁文字母,也可以使用umlauts(即öäüäÄÜé) 不幸的是,我试过的都不管用 关于许多来源(以下是一些链接) \p{L}应该行得通,但对我来说不行。 我必须为此使用库吗 use strict; use warnings; my $test = "testString"; print $1 if ($test =~ m/^(\p{L}+)$/); #testString $test = "testStringö"; print $1 if

我想检查一个人的名字是否有效。 它应该检查拉丁文字母,也可以使用umlauts(即öäüäÄÜé)

不幸的是,我试过的都不管用

关于许多来源(以下是一些链接)

\p{L}
应该行得通,但对我来说不行。 我必须为此使用库吗

use strict;
use warnings;

my $test = "testString";
print $1 if ($test =~ m/^(\p{L}+)$/);   #testString
$test = "testStringö";
print $1 if ($test =~ m/^(\p{L}+)$/);   #no print msg
$test = "testéString";
print $1 if ($test =~ m/^(\p{L}+)$/);   #no print msg

您需要告诉Perl文件的源代码是utf8格式的。加

use utf8;
之后

use strict;

此外,在实际代码中,字符串可能来自源代码之外,因此您可能需要在读取后或在读取时使用
:encoding(UTF-8)
层从UTF-8对其进行解码。