[英]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.