正则表达式匹配字符串

时间:2016-03-01 04:02:13

标签: regex

我有很多字符串:

...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

3 个答案:

答案 0 :(得分:2)

所以你要做的就是匹配values。就正则表达式而言,我们称之为pattern。我有一个可以扩展的粗略解决方案。

正则表达式: .*value1=\'(\d*)\'.*value2=\'\1\'.*

<强>解释

  • 这里正在做的是抓取value1并期望value2相同pattern

Regex101 Demo

答案 1 :(得分:0)

我认为你想要的是

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

我认为您可能希望阅读capture groups并在其中一位在线正则表达式测试人员like this one

上试用它们

编辑: 顺便说一句,如果你还没有计划这样做,你可能会想要在上面的正则表达式的末尾使用/ g修饰符,以便它返回匹配该模式的所有结果而不仅仅是第一个。

答案 2 :(得分:0)

使用 awk

在不知道输入数据的情况下不确定要使用哪个正则表达式,但输出命令将是

if $leftNum == $rightNum print $whateverUwant