簡體   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