[英]Regex: Match everything except backreference
我有以下示例行:
a_a
b_c
如何(使用grep
/ egrep
)匹配第一个字母不等于最后一个字母的行? 我尝试了以下但这似乎没有正常工作。
egrep ([ab])_[^\1]
使用egrep -v
或反正则表达式(匹配除第一个字母等于最后一个字母之外的所有内容)对我的用例是不可能的。
使用组匹配。
在那里,您创建一个包含第一个字符的组,然后将组( \\1
)放在末尾。
egrep '^(.).*\1$'
相反:
pcregrep '^(.).*((?!\1).)+$'
也许你正在寻找这个:
\\ B([AZ])\\ W +(?!(\\ 1))([AZ])\\ b
它适用于:
a_a和b_c
(测试时间:The Regulator 2.0.3)
然后,您可以调整此正则表达式以满足您的需求
在锚定到输入结束后使用负面外观。 “第一个字符不是最后一个字符”的一般正则表达式是:
^(.).*(?<!\1)$
要仅匹配您的输入类型:
^(.)_.(?<!\1)$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.