[英]How to match everything up to the last occurence of a special character set?
我正在嘗試修改我的正則表達式拆分器。
我的表達很簡單:匹配一個字符集的一個或多個出現: \\s*[|()!=\\s]+
運行此示例將得出:
(output !==(not output)) | (output)
//output, not output, output
現在,我要執行以下操作:“如果出現一個=
字符,則在后面匹配所有字符,直到最后一次出現同一字符集為止。”
再次查看上面的示例,它可以看到第一個=
,然后應完全匹配以下內容: !==(not output)) | (
!==(not output)) | (
怎么辦呢?
我不確定這是否意味着以后使用,但對於您當前的輸入,它是否有效
String data = "(output !==(not output)) | (output)";
Matcher m = Pattern.compile("(\\w+)\\s*(?=!?==)(.*)\\1").matcher(data);
// ^-group1 ^ ^-repeated group1
// |group 2
while (m.find()) {
System.out.println(m.group(2));//match from group 2
}
輸出:
!==(not output)) | (
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.