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

Regex 如何在正则表达式中使用管道来匹配字符串的中间?,regex,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'

我希望能够在字符串的中间可能发生变化时匹配正则表达式模式。我在读取命令输出时执行此操作,因此我还需要匹配输出中的其他单词

作为我努力实现目标的一个小例子

str1 = 'This is my SAS test'
str2 = 'This is my SATA test'
我想创建一个正则表达式模式,该模式将同时匹配str1和str2,同时保留模式中的其他文本

我认为实现这一点的唯一方法是创建正则表达式模式

'This is my SAS test|This is my SATA test'
如果我能让它变得简单,只需要像这样的东西(我知道这不管用):


有什么想法吗?

使用组:
这是我的(SAS | SATA)测试

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

/This is my (?:SAS|SATA) test/
这是由于交替运算符具有绝对最小优先级。通过对它进行分组,它可以正确地处理子表达式

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