Поскольку вы хотите сопоставлять имена файлов, которые имеют общие элементы, я думаю, что наиболее эффективный способ (если не единственный способ) сделать это - использовать исключение (то есть файлы, которые не относятся к iPad в любомКстати, или файлы, которые не относятся к устройству iPhoneAB, но любые другие подойдут.
Итак, для этих входов:
SCName1.m
SCOtherGlobal.m
SCiPhoneFile1.m
SCiPhoneFile2.m
SCiPadFile.m
SCiPadFile2.m
SCiPhoneAAFile1.m
SCiPhoneABFile2.m
SCiPadABFile1.m
SCiPadABOtherFile.m
Я могу сопоставить эти файлы:
SCName1.m
SCOtherGlobal.m
SCiPhoneFile1.m
SCiPhoneFile2.m
SCiPhoneAAFile1.m
Используя это выражение (которое использует отрицательный прогноз):
SC(?!iPad|iPhoneAB)[^.]*\.m
Я надеюсь, что это работает для вас! Кроме того, я могу разбить это для вас, если вы хотите: D