云手机技术解析与实战:用 Python 远程操控云手机实现自动化挂机
2026/6/25 20:12:55
在进行模式匹配时,有时需要匹配除特定字符之外的任意字符。例如,正则表达式模式匹配时,.*\n虽然能匹配单行,但也会匹配多行,因为多行也以\n结尾。若要逐行读取,可使用^来解决。当^作为正则表达式范围的第一个字符时,表示匹配除给定字符之外的任意字符,如[^ ab]匹配除a或b之外的任意字符,[^ a - zA - Z]匹配除字母之外的任意字符。
可以利用范围构建更大的模式,如[^ ]*可匹配不包含空格的最长字符串。以下是一个示例代码:
expect -re "([^ ]*) "该范围匹配每个单词,并将结果存储在$expect_out(1, string)中。注意,单词末尾的空格要显式匹配,否则输入缓冲区可能以空格开头,后续匹配会返回空格前的空字符串。
模式匹配会在输入的第一个可能位置匹配最长字符串。若要匹配更后面的内容,可选择更具描述性的模式,或者将*替换为+,强制模式至少包含一个字母,从而跳过单词间的空格。示例代码如下:
expec