2016-03-01 238 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