繁体   English   中英

正则表达式:匹配除反向引用之外的所有内容

[英]Regex: Match everything except backreference

我有以下示例行:

a_a
b_c

如何(使用grep / egrep )匹配第一个字母不等于最后一个字母的行? 我尝试了以下但这似乎没有正常工作。

egrep ([ab])_[^\1]

使用egrep -v或反正则表达式(匹配除第一个字母等于最后一个字母之外的所有内容)对我的用例是不可能的。

使用组匹配。

在那里,您创建一个包含第一个字符的组,然后将组( \\1 )放在末尾。

^(.).*\\1$

egrep '^(.).*\1$'  

相反:

^(.).*((?!\\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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM