第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

笑臉的正則表達式模式無法區(qū)分減號和范圍

笑臉的正則表達式模式無法區(qū)分減號和范圍

ABOUTYOU 2023-04-19 15:51:48
我正在做這個正則表達式[:|;]{1}([\\(|\\)|D|p]|[-\\(]|[-\\)]){1}對于這個候選人:) :) x-] :ox ;-( ;-) ;~( :~D ;)這里 https://regex101.com/r/3swEO2/3/預期結果是 :) :) ;-( ;-) 的匹配但是我無法創(chuàng)建帶有減號的模式,當不在匹配器組的開頭時,這些減號被識別為范圍。對正確組的提示將不勝感激!
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

為什么要在同一組中嘗試匹配它?只需添加另一部分以與 {0, 1} 量詞匹配。


[:|;]{1}\-{0,1}([\(|\)|D|p]){1}

由于您在 Java 中使用它,您可能需要加倍反斜杠以便首先正確轉義 String。


在這種情況下,您可以這樣做:


:\)|[:|;]{1}\-{1}([\(|\)|D|p]){1}

或者由于案例似乎沒有很多可能的匹配項,只需像這樣枚舉它們:


:\)|;-\(|;-\)


我測試了它,它工作得很好:


import java.util.regex.Matcher;

import java.util.regex.Pattern;


public class test {

? ? public static void main(String[] args) {

? ? ? ? String s = ":) :) x-] :ox ;-( ;-) ;~( :~D ;)";

? ? ? ? Pattern patt = Pattern.compile(":\\)|;-\\(|;-\\)");

? ? ? ? Matcher m = patt.matcher(s);


? ? ? ? while (m.find())

? ? ? ? ? ? System.out.print(m.group() + " ");

? ? }

}

打印所有 4 場比賽::) :) ;-( ;-)


查看完整回答
反對 回復 2023-04-19
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

這應該做:

(:-?[\|DdPpXx\[\])(]|;-[\|DdPpXx\[\])(])

[\|DdPpXx\[\])(]是可用于覆蓋所有可能字符的字符集。

除此之外,我正在使用 OR 管道|來涵蓋這兩種情況 wrt:;。

查看完整回答
反對 回復 2023-04-19
  • 2 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號