首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Perl检查字符串是否只有英文字符。

使用Perl检查字符串是否只有英文字符。
EN

Stack Overflow用户
提问于 2015-02-12 22:02:11
回答 2查看 1.5K关注 0票数 1

我有一个文件,里面有这样的意见书

代码语言:javascript
运行
复制
%TRYYVJT128F93506D3<SEP>SOYKCDV12AB0185D99<SEP>Rainie Yang<SEP>Ai Wo Qing shut up (OT: Shotgun(Aka Shot Gun))
%TRYYVHU128F933CCB3<SEP>SOCCHZY12AB0185CE6<SEP>Tepr<SEP>Achète-moi

我用这个正则表达式剥夺了所有的东西,除了歌曲的名字。

代码语言:javascript
运行
复制
$line =~ s/.*>|([([\/\_\-:"``+=*].*)|(feat.*)|[?¿!¡\.;&\$@%#\\|]//g;

我想确保唯一打印的字符串只包含英文字符,所以在这种情况下,它将是第一首歌曲标题Ai Wo Quing shut up,而不是下一首,因为è

我试过这个

代码语言:javascript
运行
复制
if ( $line =~ m/[^a-zA-z0-9_]*$/ ) {
    print $line;
}
else {
    print "Non-english\n";

我以为这只会匹配英语字符,但它总是打印Non-english。我觉得这是我生锈了,但我找不到答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-13 07:38:56

根据这些评论,你的问题似乎是:

代码语言:javascript
运行
复制
$line =~ m/[^a-zA-z0-9_]*$/

具体来说- ^在括号内,这意味着它不是一个“锚”。它实际上是一个否定运算符

请参阅:http://perldoc.perl.org/perlrecharclass.html#Negation

也可以列出不想匹配的字符。您可以使用插入符号(^)作为字符类中的第一个字符来完成此操作。例如,^a匹配任何不是小写的ASCII字母的字符,因此包含100多万个Unicode代码点。这个类被称为“否定”或“倒置”。

但重要的是--如果没有“行的开始”锚点,您的正则表达式就是零或多个实例(不管是什么),所以几乎可以匹配任何内容,因为它可以随意忽略行内容。

(Borodin的答案涵盖了这种模式匹配的其他一些选项,因此我将不再重复)。

票数 3
EN

Stack Overflow用户

发布于 2015-02-13 01:08:07

现在还不清楚你需要什么,所以这里有几个观察结果可以说明你所写的。

最好使用split来划分<SEP>上的每一行数据,我认为这是一个分隔符。你的问题问到第四个这样的领域,就像这样

代码语言:javascript
运行
复制
use strict;
use warnings;
use 5.010;

while ( <DATA> ) {
    chomp;
    my @fields = split /<SEP>/;
    say $fields[3];
}

__DATA__
%TRYYVJT128F93506D3<SEP>SOYKCDV12AB0185D99<SEP>Rainie Yang<SEP>Ai Wo Qing shut up (OT: Shotgun(Aka Shot Gun))
%TRYYVHU128F933CCB3<SEP>SOCCHZY12AB0185CE6<SEP>Tepr<SEP>Achète-moi

输出

代码语言:javascript
运行
复制
Ai Wo Qing shut up (OT: Shotgun(Aka Shot Gun))
Achète-moi

另外,word字符类\w[a-zA-z0-9_]完全匹配( \W与补语匹配),这样您就可以像下面这样重写if语句

代码语言:javascript
运行
复制
if ( $line =~ /\W/ ) {
    print "Non-English\n";
}
else {
    print $line;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28488681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档