在
AXyz122311Xyslasd22344ssaa Aklsssx @ sdddf#4 = sadsss kaaAASds
如何在UNIX中使用正则表达式获取以"slas"
开头并以"11Xy"
结尾的字符"d223"
?
答案 0 :(得分:0)
lookahead and lookbehind assertions将会这样做。
你尝试过这样的事吗?
(?<=11Xy).+(?=d223)
更新
您可以使用grep -o
仅在* nix环境中显示匹配的文本。
答案 1 :(得分:0)
还不晚,但是,downvoters需要包括* NIX grep有一些限制和环视/后视/等等,实际上并不适用于大多数版本。
http://www.regular-expressions.info/grep.html
由于grep和egrep都不支持任何特殊功能,例如延迟重复或环视,
最近才将它添加到最近发布的GNU grep(3.0?)中基本上使用perl兼容的正则表达式
https://www.gnu.org/software/grep/manual/grep.html#The-Backslash-Character-and-Special-Expressions
-P --perl-regexp将模式解释为Perl兼容的正则表达式(PCRE)。这是非常实验性的,特别是当与-z( - null-data)选项结合使用时,'grep -P'可能会警告未实现的功能。
在升级我的grep并使用-P 时,它就像魅力一样
$cat test.txt | ggrep -oP '(?<=11Xy)(.*?)(?=d223)'
slas
$ggrep --version
ggrep (GNU grep) 3.1
Packaged by Homebrew
Copyright (C) 2017 Free Software Foundation, Inc.
...