用空格分割字串,不包括引用的段
在正規表示式領域,在保留引用段的同時按空格分割字串的任務對於新手用戶來說可能會令人畏懼。為了應對這項挑戰,我們尋求一種強大的解決方案,將輸入字串準確地分成其組成元素。
提供的範例字串呈現了一種特定情況,其中空格分隔單詞,但不在單引號或雙引號段內。所需的輸出保留這些引用的片段,確保像「will be」或「正規表示式」這樣的短語保持完整。
適合此任務的正規表示式非常簡單:
[^\s"']+|"([^"]*)"|'([^']*)'
分解這個表達式:
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)\"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { // Add double-quoted string without the quotes matchList.add(regexMatcher.group(1)); } else if (regexMatcher.group(2) != null) { // Add single-quoted string without the quotes matchList.add(regexMatcher.group(2)); } else { // Add unquoted word matchList.add(regexMatcher.group()); } }
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"[^\"]*\"|'[^']*'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { matchList.add(regexMatcher.group()); }
以上是如何使用正規表示式以空格分割字串,同時保留引用的段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!