我有以下示例行:
a_a
b_c
如何(使用grep
/ egrep
)匹配第一个字母不等于最后一个字母的行?我尝试了以下但这似乎无法正常工作。
egrep ([ab])_[^\1]
对于我的用例,使用egrep -v
或反正则表达式(匹配除第一个字母等于最后一个字母之外的所有内容)不可能。
答案 0 :(得分:0)
使用小组匹配。
在那里你创建一个包含第一个字符的组,然后将组(\1
)放在最后。
egrep '^(.).*\1$'
相反:
pcregrep '^(.).*((?!\1).)+$'
答案 1 :(得分:0)
可能你正在寻找这个:
\ B([A-Z])\ W +(?!(\ 1))([A-Z])\ B'/ P>
适用于:
a_a和b_c
(使用:The Regulator 2.0.3测试)
然后,您可以调整此正则表达式以满足您的需求
答案 2 :(得分:0)
在锚定到输入结尾后使用负面外观。第一个字符的一般正则表达式不是最后一个字符"是:
^(.).*(?<!\1)$
仅匹配您的输入类型:
^(.)_.(?<!\1)$