Sap*_*Sun 13 regex perl letters
我真的想使用\ w但是它也匹配下划线,所以我会选择[A-Za-z]感觉不必要的冗长和以美国为中心.有一个更好的方法吗?像[\ _ ^ ^]这样的东西(我怀疑我的语法是否正确)?
匹配国际(即非ASCII)字符有点困难,可能取决于很多东西.看看这个例子:
#!perl -w
use strict;
use utf8;
my $string = "ä";
print "matched :alpha:\n" if $string =~ /[[:alpha:]]/;
print "matched ^\\W0-9_\n" if $string =~ /[^\W0-9_]/;
print "matched [a-zA-Z]\n" if $string =~ /[a-zA-Z]/;
print "matched [a-z]i\n" if $string =~ /[a-z]/i;
print "matched [A-z]\n" if $string =~ /[A-z]/;
Run Code Online (Sandbox Code Playgroud)
对我来说,这导致了
matched :alpha:
Run Code Online (Sandbox Code Playgroud)
如果删除use utf8则没有正则表达式匹配.
看看这个非常相关的问题,看起来你可能想要use utf8查看Unicode :: Semantics.
当然,如果您使用的是直接ASCII字符,那么上述任何正则表达式都可以使用.