Regexp,我想提取所有字符,包括位于预选单词之间的点(.)

Regexp,我想提取所有字符,包括位于预选单词之间的点(.),regex,matlab,Regex,Matlab,我想提取文本文件中苹果和橙色之间的所有字符。一个例子是 orangeSEM_DAIM_244.25橙色,但是当我使用may代码时,我什么也得不到 我尝试不带橙色,所以这次我得到了SEM_DAIM_244,我想这是点(.)配置的问题。我不能补充。包括圆点,因为当我这样做的时候,它会给其他一些不包括圆点但介于苹果和橙色之间的词带来问题,例如SEM_DAIM_A PS:我正在使用MATLAB:) 有什么想法吗?您可以使用lookaround断言在word前后匹配apple或orange,因为它们是lo

我想提取文本文件中苹果和橙色之间的所有字符。一个例子是

orangeSEM_DAIM_244.25橙色,但是当我使用may代码时,我什么也得不到

我尝试不带橙色,所以这次我得到了SEM_DAIM_244,我想这是点(.)配置的问题。我不能补充。包括圆点,因为当我这样做的时候,它会给其他一些不包括圆点但介于苹果和橙色之间的词带来问题,例如SEM_DAIM_A

PS:我正在使用MATLAB:)


有什么想法吗?

您可以使用lookaround断言在word前后匹配
apple
orange
,因为它们是lookaround,不属于匹配字符串的一部分,它们不会包含在匹配的标记中

a = regexp(textfile,'apple(\w*)orange','tokens')
((?<=apple)|(?<=orange)).*((?=apple)|(?=orange))
orangeSEM_DAIM_244.25orange
orangeSEM_DAIM_244.25apple
appleSEM_DAIM_244.25orange
appleSEM_DAIM_244.25apple