我在OSX 10.9.4上试图将这个
python正则表达式p =“(2024(?:(?:(?:[a-z |.]?)))93)”转换为Unix正则表达式以提高grep的速度.
为了测试(并开始),我正在运行grep –color -e“[:alpha:]”/ Volume.USB/Corpus/MaskedContracts_Pre_N/01-01-09-Maximus-Inc-Second-Amendment.txt尝试和在文件中找到alpha个字符.我认为这将选择所有的字母字符,但它只选择其中的一些.我错过了文档中的内容(链接)吗?这是怎么回事?
解决方法
我不是在OSX上,但是当我尝试使用-e'[:alpha:]’时,我的grep版本(Linux上的2.12版本)实际上会返回一条非常具有描述性的消息:
grep: character class Syntax is [[:space:]],not [:space:]
换句话说,语法是在括号表达式中使用[:alpha:],这意味着最终语法将具有嵌套括号:[[:alpha:]].
当你想到它时,这是合乎逻辑的,因为正则表达式引擎无法消除字符类之间[:alpha:]的歧义,只有字符:a,l,p和h