Pergunta

Estou procurando uma regex que corresponda unidade lexical numeral pinyin (um ou mais pinyin sem espaço).

Leitura Regex para correspondência de Pinyin parece um bom começo, pois consegui adicionar rapidamente o suporte para numeral fazendo:

/(ORIGINAL_REGEXP)[0-5]/

Então, essencialmente, agrupar o antigo regexp em um grupo e anexar a condição numérica.No entanto, não sou capaz de estender isso ao caso de múltiplas palavras.Por exemplo :

jiao4zuo4zhi1wu4    叫座之物
jiao4zu3    教祖
jiao4zong1xuan3ju3  教宗选举
jiao4zi3    教子
jiao4zhun3yi2qi4    校准仪器
jiao4zhun3tiao2     校准条
jiao4zhun3ti1chi3   校准梯尺
jiao4zhun3quan1     校准圈
jiao4zhun3qi4   校准器
jiao4zhun3pu3   校准谱 

Obs.: Esta expressão será usada em um contexto Javascript.

Foi útil?

Solução 2

Aqui está o regexp que estou usando com base em @EagleV_Attnam solução e alguma adição ao que fiz:

/^((ORIGINAL_REGEXP)[0-5])+$/

A adição do início ^ e fim $ âncora resolver meus problemas :)

Regex completo é:

/^((([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])+$/

Outras dicas

Posso estar interpretando sua pergunta da maneira errada, mas você não poderia simplesmente adicionar um + para um ou mais pinyins?Ou seja

/((ORIGINAL_REGEXP)[0-5])+/
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top