用於分割字串的正規表示式:忽略引號內的空格
當這些空格包含在單一或兩個空格內時,識別字串拆分的空格可能會很困難引號。要解決此問題,請考慮以下正規表示式:
[^\s"']+|\"([^\"]*)"|'([^']*)'
此表達式將字串分為兩種類型的模式:
Java 實作:
以下 Java程式碼使用此正規表示式來分割字串:
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { matchList.add(regexMatcher.group(1)); // Double-quoted string } else if (regexMatcher.group(2) != null) { matchList.add(regexMatcher.group(2)); // Single-quoted string } else { matchList.add(regexMatcher.group()); // Unquoted word } }
更簡單選項:
如果可以接受在傳回的清單中維護引號,則可以使用更簡單的程式碼版本:
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"[^\"]*\"|'[^']*'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { matchList.add(regexMatcher.group()); }
此方法不太複雜,但在傳回的清單中包含引號列出元素。
以上是如何使用正規表示式拆分引號內帶空格的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!