我已经在我的 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)
?您的帮助将不胜感激。