我有一个包含空值的文本源,我需要将其与我的正则表达式模式一起提取出来。正则表达式能匹配空字符吗?
当我尝试使用我的正则表达式模式匹配时,我才意识到它们存在。当我将文本粘贴到Notepad++中时,它显示了所有的空字符。
\x00
那是一个空字符。
在匹配空字符时存在一个问题,您首先需要安排好它的到达。许多语言使用以null结尾的字符串,因此您的匹配可能不是针对整个输入的。
至于如何在PCRE中表达它,\000是有效的,并且不会被其后的任何内容所干扰,而\x{}就会被干扰(但在我的意见中,八进制版本更容易在浏览正则表达式时识别)。
请参见PCRE手册,搜索非打印字符以获取有关以各种不同方式指定空值的完整详细信息。
_asciire = re.compile('([\x00-\x7f]+)')
。请注意缺少“r”表示原始字面量 - 这意味着在Python级别上进行了取消转义,在模块中获取了值为0x00和0x7f的字符。
\x0
,否则不应该这样做。如果你试图匹配\x0apple
,那么它将尝试匹配\npple
。 - Jonathan