匹配数字拼音的正则表达式
-
21-12-2019 - |
题
我正在寻找一个正则表达式来匹配 数字拼音词法单元 (一个或多个拼音不带空格)。
阅读 用于匹配拼音的正则表达式 似乎是一个好的开始,因为我能够通过这样做快速添加对数字的支持 :
/(ORIGINAL_REGEXP)[0-5]/
所以基本上将旧的正则表达式包装在一个组中并附加数字条件。但是,我无法将其扩展到多个单词的情况。例如 :
jiao4zuo4zhi1wu4 叫座之物
jiao4zu3 教祖
jiao4zong1xuan3ju3 教宗选举
jiao4zi3 教子
jiao4zhun3yi2qi4 校准仪器
jiao4zhun3tiao2 校准条
jiao4zhun3ti1chi3 校准梯尺
jiao4zhun3quan1 校准圈
jiao4zhun3qi4 校准器
jiao4zhun3pu3 校准谱
N.B.: 此表达式将在Javascript上下文中使用。
解决方案 2
这是我正在使用的基于正则表达式 @EagleV_Attnam 解决方案和一些补充我已经做了什么。:
/^((ORIGINAL_REGEXP)[0-5])+$/
开始的增加 ^
并结束 $
锚解决我的问题:)
全正则表达式是:
/^((([mM]iu|[pmPM]ou|[bpmBPM](o|e(i|ng?)?|a(ng?|i|o)?|i(e|ng?|a[no])?|u))|([fF](ou?|[ae](ng?|i)?|u))|([dD](e(i|ng?)|i(a[on]?|u))|[dtDT](a(i|ng?|o)?|e(i|ng)?|i(a[on]?|e|ng|u)?|o(ng?|u)|u(o|i|an?|n)?))|([nN]eng?|[lnLN](a(i|ng?|o)?|e(i|ng)?|i(ang|a[on]?|e|ng?|u)?|o(ng?|u)|u(o|i|an?|n)?|ve?))|([ghkGHK](a(i|ng?|o)?|e(i|ng?)?|o(u|ng)|u(a(i|ng?)?|i|n|o)?))|([zZ]h?ei|[czCZ]h?(e(ng?)?|o(ng?|u)?|ao|u?a(i|ng?)?|u?(o|i|n)?))|([sS]ong|[sS]hua(i|ng?)?|[sS]hei|[sS][h]?(a(i|ng?|o)?|en?g?|ou|u(a?n|o|i)?|i))|([rR]([ae]ng?|i|e|ao|ou|ong|u[oin]|ua?n?))|([jqxJQX](i(a(o|ng?)?|[eu]|ong|ng?)?|u(e|a?n)?))|(([aA](i|o|ng?)?|[oO]u?|[eE](i|ng?|r)?))|([wW](a(i|ng?)?|o|e(i|ng?)?|u))|[yY](a(o|ng?)?|e|in?g?|o(u|ng)?|u(e|a?n)?))[0-5])+$/
其他提示
我可能会以错误的方式解释你的问题,但你不能只为一个或多个拼音添加一个+
?即
/((ORIGINAL_REGEXP)[0-5])+/
. 不隶属于 StackOverflow