如何在正则表达式中使用管道来匹配字符串的中间?

时间:2015-10-07 17:59:13

标签: regex

我希望能够在字符串中间改变时匹配正则表达式模式。我在读取命令的输出时这样做,所以我需要匹配输出中的其他单词。

作为我想要实现的一个小例子,

str1 = 'This is my SAS test'
str2 = 'This is my SATA test'

我想创建一个与str1和str2匹配的正则表达式模式,同时保持模式中的其他文本。

我认为可以实现这一目标的唯一方法是制作正则表达式

'This is my SAS test|This is my SATA test'

我真的很喜欢它,如果我能让它简单,只是有这样的东西(我知道这不起作用):

'This is my SAS|SATA test'

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用群组:This is my (SAS|SATA) test

答案 1 :(得分:1)

您想要使用群组。如果您不想捕获它,请使用非捕获组,如下所示:

/This is my (?:SAS|SATA) test/

这是由于交替运算符具有绝对最小优先级。通过对其进行分组,它可以正确处理子表达式。