我将此(.*)([USB][\s])*
作为正则表达式的一部分。当我尝试将其与ABHISHEK USB
匹配时,它与第一部分匹配,但全值匹配。有什么方法可以忽略USB
的(.*)
部分并将其与([USB][\s])
匹配。
最佳答案
星号(*
)说重复零次或多次。这是贪婪地完成的。因此,问题在于.*
将尝试匹配所有内容,并且由于第二颗星可以匹配零个字符,因此不会执行回溯。两种解决方案:
如果确定存在(\sUSB)*
部分,请使用+
而不是*
重复一次或多次:
(.*)(\sUSB)+
如果不是这种情况,请对第一颗星-
.*?
使用非贪婪重复:(.*?)(\sUSB)*