正如標題所說,我正在嘗試將括號中的文本(例如“[ab][ij][yz]”)拆分為一個串列,例如 {“[ab]”、“[ij]”、“[yz]”}或{“ab”、“ij”、“yz”}。我看了這個問題,類似的東西會起作用,但情況更具體,我只需要一個更簡單、更通用的正則運算式。
uj5u.com熱心網友回復:
這是一種方法:
[^\[\]]
每個不同的字符[或]匹配的次數盡可能多,因此匹配在每個方括號之間。
在此處查看在線演示。
[^]:匹配串列中不存在的單個字符。\[: 匹配[。\]: 匹配]。
:匹配前一個令牌一次到無限次,盡可能多次。
在java中:
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final Pattern pattern = Pattern.compile("[^\\[\\]] ");
final Matcher m = pattern.matcher("[ab][ij][yz]");
ArrayList<String> allMatches = new ArrayList<String>();
while (m.find()) {
allMatches.add(m.group(0));
}
System.out.println(allMatches);
}
}
uj5u.com熱心網友回復:
帶包裝的示例[ ]
/\[[^\]] \]/g
console.log(
"[ab][ij][yz]".match(/\[[^\]] \]/g)
);
https://regex101.com/r/IljP6k/3
沒有[ ]使用 Positive lookbehind包裝的示例(?<=)
/(?<=\[)[^\]] /g
console.log(
"[ab][ij][yz]".match(/(?<=\[)[^\]] /g)
);
https://regex101.com/r/IljP6k/2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/445155.html
標籤:正则表达式
