2016-03-01 223 views
2

的某些位置相等的話我有幾個字符串:正則表達式匹配字符串

...somedata... value1='555', value2='666', ...somedata... 
...somedata... value1='333', value2='333', ...somedata... 
...somedata... value1='123', value2='456', ...somedata... 

有沒有一種方法來匹配的字符串,在value1value2具有相等的值?

例如value1='x'value2='y',其中x == y

+2

是的,可能會有。 。 。我想通過捕獲第一個值並使用捕獲組來匹配第二個值。像[this](https://regex101.com/r/tV4cH3/2) – 2016-03-01 04:05:26

+0

我想你應該指定更多信息。你爲什麼想這樣做?爲什麼它被保存爲字符串?顯示您的正確代碼 – Shri

+0

是的,當然,我可以比較正則表達式本身以外的結果。想知道是否有辦法在某種程度上做到這一點。 –

回答

2

那麼你正在嘗試做的是同時匹配values。在正則表達式中,我們將稱這pattern。我有一個可以擴展的粗略解決方案。

正則表達式:.*value1=\'(\d*)\'.*value2=\'\1\'.*

說明:

  • 什麼我這裏做的是捕捉value1和期待value2是相同pattern

Regex101 Demo

+0

是的,確切!非常感謝你!我在這裏錯過了一些東西。 :) –

0

我想你想要的是

value1='([0-9]*)', value2='\1' 

我想你也許會想了解capture groups並嘗試出來的在線正則表達式測試like this one

編輯之一:如果 BTW,你還沒有計劃這麼做,你可能會想在上面的正則表達式的末尾使用/ g修飾符,以便它返回與該模式相匹配的所有結果,而不僅僅是第一個。

0

使用awk的

不知道不知道你的輸入數據要使用的正則表達式,但輸出命令將

if $leftNum == $rightNum print $whateverUwant