大家好.我要写一个函数来判断str是否双汉字拼音,如:zhongguo   beijing  这些都属于双汉字拼音.
我想用到正则表达式来判断
已知 String py[]={"a","ai","an","ao","ba","bai","ban","bang","bao","bei",.....,"zuo"}数组 py 由全部单字拼音组成,有近400个单字拼音我想利用这一数组来判断str
但正则表达式不知如何写
我所有掌握的表达式写法都是具体的,
如:判断是否中文.com  可以这样表达  "(xn--).*(.com)"; 但这次的判断标准来自py数组,有近400个元素,不可能具体写出
现请教各位,类似这种用数组表示正则表达式的问题应如何解决?谢谢

解决方案 »

  1.   

    用左右任选 "|" 符号,将所有的拼音组合,连成长长的一串,然后再要求匹配2次:
    ^(a|ai|an|ao|ba|……){2}$从效率上讲,我觉得没问题的。不过根据拼音组合出现的概率,把概率较大的放在前面,估计效率会高一点。
      

  2.   

    如果要使用正则表达式,同时又直接使用变量,在 java 中不好办。我目前知道的,好像只有 Perl 可以做到这一点,就是直接使用变量。不过怎么用,我也不熟。