汉语拼音正则表达式,网上找了半天没找到简单有用的,自己琢磨了半天!!!终于搞了个简单有用的出来。。。
[A-Z]*[à-ḿ][a-z]*
轻声路过,发现没有给注意上。
亲生的就成了[a-z]了。这个确实没办法。。。
网上找的,不知道行不行:
([āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡa-zA-ZA-Za-z\\s∥-]+)
([bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[āáǎàōóǒòńēéěèếềīíǐìḿǹńňūúǔùǖǘǚǜü][ginour]*)
[bcdfghjklmnpqrstwxyz]{0,2}:声母
[iuüv]?[āáǎàōóǒòńēéěèếềīíǐìḿǹńňūúǔùǖǘǚǜü][ginour]*:韵母。
轻声,在[a-z]+
前后加入限制字符串,就行了。
那就再套多一个组
(([bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[āáǎàōóǒòńēéěèếềīíǐìḿǹńňūúǔùǖǘǚǜü][ginour]*)+)
弄了个emeditor宏。
//拼音匹配:匹配带声调
bAnswer = confirm("拼音匹配:匹配带声调?\r\n匹配后加入标签<py>。\r\n示例:chēn --> <PY>chēn</PY>");
if (bAnswer==true)
{
//匹配单字或都词组均带声调。
document.selection.Replace("(([bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[āáǎàōóǒòńēéěèếềīíǐìḿǹńňūúǔùǖǘǚǜü][ginour]*)+)","<PY>\\1</PY>",eeReplaceAll | eeFindReplaceOnlyWord | eeFindReplaceRegExp,eeExFindRegexOnigmo);
//匹配词组后面轻声
document.selection.Replace("(?<!<PY>)(([bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[āáǎàōóǒòńēéěèếềīíǐìḿǹńňūúǔùǖǘǚǜü][ginour]*)+([bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[aoeiuü][ginour]*|hng))","<PY>\\1</PY>",eeReplaceAll | eeFindReplaceOnlyWord | eeFindReplaceRegExp,eeExFindRegexOnigmo);
}
//拼音匹配:轻声
bAnswer = confirm("是否继续匹配轻声?\r\n注意:不加条件捕获会可能捕获到英文单词。\r\n匹配后加入标签<PYQS>。\r\n示例:chen --> <PYQS>chen</PYQS>");
if (bAnswer==true)
{
var py=prompt("拼音字符串(默认即可)。","[bcdfghjklmnpqrstwxyz]{0,2}[iuüv]?[aoeiuü][ginour]*|hng")
var pyb=prompt("拼音前面限制字符串,“\.\$\(\)\[\]\{\}\*\^\+\?\\\|”需要加“\\”","")
var pya=prompt("拼音后面限制字符串,“\.\$\(\)\[\]\{\}\*\^\+\?\\\|”需要加“\\”","")
if (py!="")
{
//匹配单字
document.selection.Replace("("+pyb+")("+py+")("+pya+")","\\1<PYQS>\\2</PYQS>\\3",eeReplaceAll | eeFindReplaceOnlyWord | eeFindReplaceRegExp,eeExFindRegexOnigmo);
//匹配词组无声调。
document.selection.Replace("("+pyb+")((?<!<PYQS>)("+py+"){2,})("+pya+")","\\1<PYQS>\\2</PYQS>\\4",eeReplaceAll | eeFindReplaceOnlyWord | eeFindReplaceRegExp,eeExFindRegexOnigmo);
}
}
有心了,宏我还没有学习怎么用呢。
抱歉如果答案重複…我用兩個正則。
寬容,可以容納數據的拼音錯誤:
([a-zāáǎàēéěèīíǐìōóǒòūúǔùüǖǘǚǜm̄ḿm̀ńǹ]+)
較嚴格,這不包括無聲調號的輕聲:
([bcdfghjklmnpqrstwyxz]{0,1}[h]{0,1}[iuü]{0,1}[āáǎàēéěèīíǐìōóǒòūúǔùüǖǘǚǜ][iounr]{0,2}[g]{0,1})
拼音不該有的,例如:ǖ、ǖa、iāo、iào、uǎi、uě、uǒ
嗯,我沒修理過現代漢語字典
不知为什么在剪切板运行宏正常,但添加文件后运行时总是提示16后少括号,并且这时剪切板运行也提示?
保存宏文件时,注意保存格式,UTF16,有签名。
多谢!
楼主整理的挺好的,以后有时间修汉语词典的时候会用的上