有一道這樣的面試題
寫一個Java方法,利用正則表達式判斷輸入str中包含字符串”ios“或”apple“(大小寫不敏感),但不包括”mediaplayer“。如果滿足條件,返回所包含的字符串”ios”和/或”apple“(按實際大小寫返回)
解決辦法:

package com.xfma.demo; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String[] s) { test("iosjghjIOSfyfapplelioAPPLEbmediaplayer"); test("iosjghjIOSfyfapplelioAPPLEb"); } /*** * 1. 寫一個Java方法,利用正則表達式判斷輸入str中包含字符串”ios“或”apple“(大小寫不敏感), * 但不包括”mediaplayer“。如果滿足條件,返回所包含的字符串”ios”和/或”apple“(按實際大小寫返回) * @param str */ public static void test(String str) { Pattern pattern = Pattern.compile("(?!.*(mediaplayer))(ios|apple|IOS|APPLE)"); Matcher matcher = pattern.matcher(str); while(matcher.find()){ System.out.println(matcher.group()); } } }
正則表達式為: (?!.*b)a