String Perl有没有办法确定文本字符串是否包含二进制数据
您好,目前我正在执行一个项目,需要从文本文件中读取一些字符串,并将这些字符串填充到XML文件中。但是在这个文件中有一些行包含二进制数据。有没有办法检查字符串是否包含二进制数据?在大多数情况下,以下正则表达式可能就足够了:String Perl有没有办法确定文本字符串是否包含二进制数据,string,perl,binary,String,Perl,Binary,您好,目前我正在执行一个项目,需要从文本文件中读取一些字符串,并将这些字符串填充到XML文件中。但是在这个文件中有一些行包含二进制数据。有没有办法检查字符串是否包含二进制数据?在大多数情况下,以下正则表达式可能就足够了: m{ [^ # Consider the match a success if each of the following meta-characters do not match \w # Match word
m{
[^ # Consider the match a success if each of the following meta-characters do not match
\w # Match word
\d # Match digit
\s # Match whitespace
[:punct:] # Match punctuation
]
}x
本质上,文本必须至少包含一个不匹配的(二进制)字符:
-word\w
-数字\d
-空格\s
-标点符号[[:punct:]
- Perl有文件测试操作符用于此:
-T
和-B
。然而,请注意,仅仅因为一个字符串被限制为一组特定的字符,并不意味着它就是我们所认为的文本。无论生成它的是什么,它仍然可能是二进制数据。感谢您建议对字符类进行否定。/[^[:print::[:space:]/