如何运行为特定字母或脚本中的字符测试文本的正则表达式?

Eli*_*Eli 7 regex perl

我想在Perl中创建一个正则表达式,它将测试特定脚本中字符的字符串.这将是这样的:

$text =~ .*P{'Chinese'}.*
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以做到这一点,对于英语而言,通过测试[a-zA-Z]非常简单,但是对于像中文这样的脚本或者日文脚本之一,我无法想办法没有明确地写出每个字符,这将导致一些非常丑陋的代码.想法?我不能成为第一个/唯一一个想要这样做的人.

Jon*_*rdy 9

查看perldoc perluniprops,它提供了可以使用的详尽属性列表\p.你会感兴趣的\p{CJK_Unified_Ideographs}和相关的属性,如\p{CJK_Symbols_And_Punctuation}.\p{Hiragana}\p{Katakana}给你假名.还有一个\p{Script=...}属性用于许多脚本:\p{Han}\p{Script=Han}匹配汉字符(中文),但没有相应的\p{Script=Japanese},很简单因为日语有多个脚本.