我正在尝试逐行阅读文档,并且只对某些字母字符感兴趣,而不是新行字符。
我有以下几点:
@chars = split //;
for $char (@chars) {
if ( ($pos % 16569 == 1719)
|| ($pos % 16569 == 8251)
|| ($pos % 16569 == 10238)) {
print FILE_OUT "$char\n";
}
if ($char == m/[A-Z]/) {
$pos++;
}
}
由于$pos
从不增加,正则表达式m/[A-Z]/
无法匹配。是否有可能在Perl中匹配单个字符,或者只允许对字符串执行此操作?如果是这样的话,有没有办法解决这个问题呢?
发布于 2013-01-11 16:35:18
您可能指的是=~
而不是==
。==
是相等的数值比较。=~
调用运算符左侧的常规模式匹配。
哦,你也应该经常使用use strict
和use warnings
,尤其是在例子中。
欢迎使用StackOverflow。
发布于 2013-01-11 16:36:28
可能有更好的方法来实现这一点,但您遇到的问题是您使用了错误的运算符。==
的意思是“数字,等于”;在本例中,您将询问$char是否将$_
匹配到您的正则表达式(这不是您想要的!)
https://stackoverflow.com/questions/14282500
复制