我正在翻译来自perl的代码,我来到了以下行
$text =~ s/([?!\.][\ ]*[\'\"\)\]\p{IsPf}]+) +([\'\"\(\[\¿\¡\p{IsPi}]*[\ ]*[\p{IsUpper}])/$1\n$2/g;
Run Code Online (Sandbox Code Playgroud)
我的问题是,\ p {IsPf}和\ p {IsPi}匹配到什么?我试过网上搜索但没找到任何东西......
Jon*_*oni 11
\p{..}
通过unicode字符属性匹配字符:http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties
特别是,\p{IsPf}
将字符与" 最终标点符号 "属性进行\p{IsPi}
匹配,并将字符与" 初始标点符号 "属性进行匹配.这些似乎主要是关闭和开放报价.
替换点似乎是通过匹配句子的结尾和开头将句子分成单独的行,同时考虑到句子可以以各种类型的标点符号开始和结束.
归档时间: |
|
查看次数: |
576 次 |
最近记录: |