我正在做这个正则表达式

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


对于这个候选人

:) :) x-] :ox ;-( ;-) ;~( :~D ;)


这里
https://regex101.com/r/3swEO2/3/

预期结果是匹配
:) :) ;-(; ;-)

但是我无法创建带有减号的模式,这些减号在不在匹配器组开始时会被识别为范围。

正确组的提示将不胜感激!

最佳答案

应该这样做:

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

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

除此之外,我正在使用OR管道|覆盖:;的两种情况。

Demo

07-26 02:04