嗨,目前我正在开展一个项目,需要从文本文件中读取一些字符串并将这些字符串填充到XML文件中。但是在这个文件中有一些包含二进制数据的行。有没有办法可以检查字符串是否包含二进制数据?
答案 0 :(得分:0)
在大多数情况下,以下正则表达式可能就足够了:
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
本质上,文本必须至少包含一个不匹配的(二进制)字符:
\w
- 字\d
- 数字\s
- space [[:punct:]]
- 标点符号答案 1 :(得分:0)
Perl为此提供了文件测试运算符:-T
和-B
。但请注意,仅仅因为字符串仅限于某组字符并不意味着它就是我们认为的文本。它仍然可能是生成它的二进制数据。