我正在寻找一个匹配" not-a-specific-of-characters"的正则表达式。一个解决方案突然出现在我面前(几年后!)我在Macintosh计算机上运行bash。
例如,我希望匹配单词 Path ,只要它没有单词 posix 或 Posix 。这是我提出的正则表达式:
[^[:space:]]*([^x]|[^i]x|[^s]ix|[^o]six|[^Pp]osix)Path
我想问一下是否有更高效或更好的方法。这种方法可能会变得有些麻烦,而不是"不是"字符序列是。
答案 0 :(得分:1)
Perl正则表达式具有方便的"look-around"功能。
perl -ne 'print if /(?<![pP]osix)Path' file
GNU grep有一个-P
标志来启用perl兼容的正则表达式,但默认情况下OSX没有GNU工具。
一种简单的技术是过滤grep:
的输出grep 'Path' file | grep -v '[pP]osixPath'