Regex für passende Ziffer Pinyin
-
21-12-2019 - |
Frage
Ich suche nach einem passenden regulären Ausdruck Numerische Pinyin-lexikalische Einheit (ein oder mehrere Pinyin ohne Leerzeichen).
Lektüre Regex für passenden Pinyin Scheint ein guter Anfang zu sein, da ich die Unterstützung für Ziffern schnell hinzufügen konnte, indem ich Folgendes tat:
/(ORIGINAL_REGEXP)[0-5]/
Also im Wesentlichen den alten regulären Ausdruck in eine Gruppe einschließen und die numerische Bedingung anhängen.Ich bin jedoch nicht in der Lage, dies auf den Fall mehrerer Wörter auszudehnen.Zum Beispiel :
jiao4zuo4zhi1wu4 叫座之物
jiao4zu3 教祖
jiao4zong1xuan3ju3 教宗选举
jiao4zi3 教子
jiao4zhun3yi2qi4 校准仪器
jiao4zhun3tiao2 校准条
jiao4zhun3ti1chi3 校准梯尺
jiao4zhun3quan1 校准圈
jiao4zhun3qi4 校准器
jiao4zhun3pu3 校准谱
Hinweis: Dieser Ausdruck wird in einem Javascript-Kontext verwendet.
Lösung 2
Hier ist der reguläre Ausdruck, den ich verwende, basierend auf @EagleV_Attnam Lösung und einige Ergänzungen, was ich getan habe:
/^((ORIGINAL_REGEXP)[0-5])+$/
Die Hinzufügung des Anfangs ^
und Ende $
Anker löse meine Probleme :)
Vollständiger regulärer Ausdruck ist:
/^((([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])+$/
Andere Tipps
Vielleicht interpretiere ich Ihre Frage falsch, aber könnten Sie nicht einfach ein hinzufügen? +
für ein oder mehrere Pinyins?D.h.
/((ORIGINAL_REGEXP)[0-5])+/