我已经在我的 Android 应用程序中添加了表情符号,并且我一直在使用 Java 中的 Regex,因此分配给它们的代码将匹配正则表达式(其中包含一对要使用的分隔符),使字符显示为图片。
例如,一些表情符号代码是sad、happy、smile。
到目前为止,它是这样的:
分隔符:
(和)正则表达式:
\\(([.[^\\(\\)]]+)\\)匹配的表情符号代码示例:
(sad),(happy),(smile).
我注意到,对于我添加的一些新表情符号,用户使用另一对分隔符(如字母z和,. 那么,第二种情况是这样的:
分隔符:
z和,正则表达式:
z([.[^z\\,]]+)\\,匹配的表情符号代码示例:
zsad,,zhappy,,zsmile,.
那么,我想要的是合并这两个正则表达式,因此用户可以使用两对分隔符中的任何一个输入表情符号代码,无论他或她喜欢哪个,它都会被匹配。例如,悲伤的表情符号将被匹配,并且每次写为(sad)or时它都会显示为图像zsad,,例如:
你好。(伤心)我有坏消息。扎德,
嘿…… (伤心)
好的。再见。扎德,
我尝试过使用交替运算符和环视,但没有成功。在以下两个正则表达式中,我只匹配了|交流发电机的左侧(当然,我希望左侧和右侧都匹配):
\\(([.[^\\(\\)]]+)\\)|z([.[^z\\,]]+)\\,
z([.[^z\\,]]+)\\,|\\(([.[^\\(\\)]]+)\\)
在以下正则表达式中,我根本没有匹配项:
(\\(([.[^\\(\\)]]+)\\)|z([.[^z\\,]]+)\\,),(\\(([.[^\\(\\)]]+)\\))|(z([.[^z\\,]]+)\\,)
(z([.[^z\\,]]+)\\,|\\(([.[^\\(\\)]]+)\\)),(z([.[^z\\,]]+)\\,)|(\\(([.[^\\(\\)]]+)\\))
\\(|z([.[^\\(\\z\\,)]]+)\\)|\\,,(\\(|z)([.[^\\(\\z\\,)]]+)(\\)|\\,) (\\()|(z)([.[^\\(\\z\\,)]]+)(\\))|(\\,)
(?=\\(([.[^\\(\\)]]+)\\))(?=z([.[^z\\,]]+)\\,),(?=.*\\(([.[^\\(\\)]]+)\\))(?=.*z([.[^z\\,]]+)\\,)
对不起,我只想提供尽可能多的细节。有谁知道我在做什么或写错了,我可以使用什么正则表达式来匹配 zemojicode, and (emojicode)?您的帮助将不胜感激。