讲讲读屏在文言实词、虚词以及各种诗句中的错误读音,以及如何修正

很久很久以前,咱们的读屏软件出了一个朗读修正的功能。这个功能的本意,是让大家能自定义一些文本替换规则,让读屏在朗读时自动把某些字词替换成我们想要的读音或表达。可很多人在使用的时候,包括我自己在内,都发现了一个问题:难道只能使用一段文本进行替换吗?就不能用正则表达式,把匹配到的字全都换掉吗?比如说,一篇文章里同一个字在好几处都读错了,难道要一条一条规则去写,那多麻烦啊!为了让大家都能用上朗读修正的全部功能,我特地编写了这个正则教程,不光讲基础写法,还把多音字、歧义、优先级这些坑都填一填,希望能够真正帮助到大家。那废话不多说,直接开始。


第一个字,槛。这个字出自李白《清平调》其一:“云想衣裳花想容,春风拂槛露华浓。”在杜牧的《阿房宫赋》里,也有“直栏横槛,多于九土之城郭”一句,同样用了“槛”这个字。“槛”字的本音在这里不读kǎn,而读jiàn,因为它表示的是栏杆的意思。你可能会疑惑:这不就是一个字吗,怎么读法还不一样?对,这正是多音字的麻烦之处。在正则上,我们可以只匹配“春风拂槛露华浓”里的那个“槛”,方法是把前后不变的文本分别括起来。比如在捕获组一里引用“春风拂”,在捕获组二里引用“露华浓”,写出来的效果就是这样的:


(春风拂)槛(露华浓)


同样,对于《阿房宫赋》里的那句,可以写成:


(直栏横)槛(多于九土之城郭)


然后统一替换为$1健$2。这里要说明一下,$1和$2是正则里的反向引用,分别代表捕获组一和捕获组二抓到的内容。也就是说,替换时会把“春风拂”和“露华浓”原样放回去,只把中间的“槛”字换成“见”字。于是结果就是“春风拂见露华浓”和“直栏横见多于九土之城郭”。在这个正则表达式里,捕获组一既可以引用“春风拂”,也可以引用“直栏横”;捕获组二既可以引用“露华浓”,也可以引用“多于九土之城郭”。或者,如果你追求更紧凑的写法,也可以把它们合并成一条正则,利用“|”这个“或”运算符:


(春风拂|直栏横)槛(露华浓|多于九土之城郭)


这个正则的意思是,它既可以匹配“春风拂槛露华浓”,也可以匹配“直栏横槛多于九土之城郭”。其中的竖线“|”在正则里就是运算符,表示“既可以匹配左边的内容,也可以匹配右边的内容”。也就是说,替换后的结果会是“春风拂见露华浓”和“直栏横见多于九土之城郭”。这里的$1和$2还是捕获组一和捕获组二分别抓到的内容,它们会把两侧的原文原封不动地放回去,只是把中间的“槛”字换成了“见”字。


不过,使用“|”的时候要特别小心。它的优先级很低,如果没有括号,它会把它左右两边所有的内容都当作可选分支。比如写成“(春风拂|直栏横)槛(露华浓|多于九土之城郭)”是没问题的,但如果你去掉括号,写成“春风拂|直栏横槛露华浓|多于九土之城郭”,那它匹配的就变成了三个独立的字符串:“春风拂”、“直栏横槛露华浓”、“多于九土之城郭”。这显然不是我们想要的。所以,当你要表达“或者”的时候,一定要用括号把每个分支的范围明确地界定好,否则正则就会按它自己的优先级把整段文字拆开,结果完全变了样。


另外,“槛”还有另一个读音和用法。当你看到“门槛”这个词时,它读作kǎn,指的是门下的横木或石条,和“栏杆”的意思不同。正则里如果遇到“门槛”,就不能再替换成“见”了,因为这里的“槛”本来就是kǎn,不需要纠正读音。如果你想把“门槛”也纳入匹配,那就要另写正则,还要根据具体语境来区分。这也就是我们反复强调的:多音字的处理,一定要依赖上下文,不能只盯着单个字。


第二个字,属。在范仲淹的《岳阳楼记》中,有“属予作文以记之”一句。在苏轼的《前赤壁赋》中,也有“举酒属客,诵明月之诗,歌窈窕之章”一句。在这里,它们的读音都是zhǔ,而不是shǔ。其中,《岳阳楼记》里的“属”表示嘱托、拜托的意思,也就是通“嘱”;而《前赤壁赋》里的“属”表示劝酒的意思。所以,第二个字其实就是“属”。在“属予作文以记之”和“举酒属客”里,它都读作zhǔ,而不是shǔ。正则上如果要精确匹配这两处,可以写成:


(属予作文以记之|举酒属客)


这样就能把读zhǔ的“属”和读shǔ的“属”区分开。但要注意,这里不能因为读音是zhǔ,就把“属”直接替换成“主”,因为“属”是古汉语里的本字,“属予作文以记之”的“属”通“嘱”,是“嘱托”的意思;而“举酒属客”的“属”是“劝酒”的意思,这两个意思都保留在“属”字身上。如果只是为了给这两处注音,可以写成:


属(zhǔ)予作文以记之


以及


举酒属(zhǔ)客


这样在读屏朗读时,就会把括号里的拼音也读出来,起到提示的作用。另外,“属”还有一个常用读音shǔ,表示“属于、归属”“家属”等,比如“属国”“属地”。在正则里,如果只写一个单独的“属”字,它会同时匹配zhǔ和shǔ两种情况,所以必须结合上下文或前后词语来限定,这和“槛”字一样,需要把语境纳入匹配条件,才能准确处理多音字。


第三个字,为。这个字在《鸿门宴》里经常出现。这里的“为”字在《鸿门宴》里还有更细的分别:当它读wéi的时候,多表示“做、作为”,有时也引申出“凭借”的意思;当它读wèi的时候,多表示“替、给”,也可以用来问“为什么”(也就是“干什么”)。在《鸿门宴》里,“谁为大王为此计者”就同时出现了两种读音:前一个“为”读wèi,是“替”;后一个“为”读wéi,是“出、做”。正则上如果要捕捉这种区别,不能单写一个“为”字,因为单独一个“为”会把wéi和wèi两种读音都匹配进来。比如:


(谁)为(大王为此计者)


可以锁定前一个“为”读wèi。捕获组一捕获“谁”,捕获组二捕获“大王为此计者”,替换时写成:


$1为(wèi)$2


就能给这个“为”注音。同样:


(人方)为(刀俎)


可以匹配“人为刀俎”中的“为”,这里的“为”读wéi,表示“是”。但要注意,“何辞为”的“为”虽然也读wéi,却是句末语气词,相当于“呢”,不能和动词用法混为一谈。所以,多音字的处理始终要依赖语境,正则只是在明确语境之后提供的一种定位和替换工具,这和前面“槛”“属”的道理是一样的。


第四个字,说。在《鸿门宴》里,范增劝项羽时有一句“范增说项羽曰”。“说”在这里读shuì,表示劝说,而不是现代汉语里常见的shuō。正则上可以写成:


(范增)说(项羽曰)


捕获组一抓“范增”,捕获组二抓“项羽曰”,替换为:


$1说(shuì)$2


结果就是“范增说(shuì)项羽曰”。另外,《烛之武退秦师》里“秦伯说,与郑人盟”的“说”通“悦”,读yuè,是高高兴兴的意思。正则写成:


(秦伯)说(,与郑人盟)


替换为:


$1说(yuè)$2


可以得到“秦伯说(yuè),与郑人盟”。注意,一个“说”字,可能读shuō、shuì、yuè,如果不结合上下文,正则单独匹配“说”就会把所有情况都混在一起。所以一定要像上面这样,把前后的字词也圈进来,才能在正则里准确定位。


第五个字,数。《鸿门宴》里“范增数目项王”的“数”读shuò,意思是屡次、多次。正则:


(范增)数(目项王)


替换为:


$1数(shuò)$2


就能把这里的读音标成shuò。《六国论》里“胜负之数,存亡之理”的“数”读shù,意思是命运、定数。正则:


(胜负之)数(,存亡之理)


替换为:


$1数(shù)$2


结果就是“胜负之数(shù),存亡之理”。“数”还有读shǔ的动词义,比如“数落”;又有“数罟不入洿池”中的cù音,是“密”的意思。如果非要匹配后者,可以写:


(数)(罟)


替换为:


$1(cù)$2


会得到“数(cù)罟”,但要注意这里的捕获组一抓的就是“数”字本身,不是前文。多音字的标注就是这样,语境不同,正则也跟着不同,一定要灵活处理。


第六个字,朝。《琵琶行》里“春江花朝秋月夜”的“朝”读zhāo,指早晨。正则:


(花)朝(秋月夜)


替换为:


$1朝(zhāo)$2


得到“花朝(zhāo)秋月夜”。这里的“花”是捕获组一,“秋月夜”是捕获组二,“朝”夹在中间,正好可以用注音替换。《过秦论》里“序八州而朝同列”的“朝”读cháo,是使……来朝见的意思。正则:


(序八州而)朝(同列)


替换为:


$1朝(cháo)$2


得到“序八州而朝(cháo)同列”。这两个例子里,“朝”都在两个上下文之间,所以能靠正则准确定位。如果你要匹配“朝服衣冠”里的“朝”,那“朝”在句首,正则写起来会让捕获组一为空,不如选这种前后都有内容的句子更顺手。所以,我们在写正则的时候,尽量选择那些上下文清晰的片段,这样匹配起来最稳妥。


第七个字,骑。《鸿门宴》里“沛公则置车骑,脱身独骑”,同样一个“骑”字,前后读音不同:“车骑”的“骑”读jì,指车马、骑兵,是名词;“独骑”的“骑”读qí,是动词,骑马。正则可以把整句合成一条来写:


(车)骑(,脱身独)骑


捕获组一抓“车”,捕获组二抓“,脱身独”,替换为:


$1骑(jì)$2骑(qí)


这样就会得到“车骑(jì),脱身独骑(qí)”。这种做法和“数”一样,让正则同时处理两个读音,前提是上下文足够明确。类似的,“铁骑突出刀枪鸣”里的“骑”也读jì,大家在遇到时要根据语境判断。


第八个字,衣。《廉颇蔺相如列传》里“乃使其从者衣褐”的“衣”读yì,是动词,穿(衣服)。“褐”是粗布衣服。正则:


(乃使其从者)衣(褐)


替换为:


$1衣(yì)$2


得到“乃使其从者衣(yì)褐”。《诗经·无衣》里“岂曰无衣?与子同袍”的“衣”读yī,是名词,衣服。正则:


(岂曰无)衣(?与子同袍)


替换为:


$1衣(yī)$2


得到“岂曰无衣(yī)?与子同袍”。注意“衣”名词读yī,动词读yì,这正是古汉语里常见的“破读”现象。在正则里,我们就是通过捕获组把动词或名词前后的成分固定下来,然后给“衣”字加上正确的注音。


第九个字,王。《鸿门宴》里“沛公欲王关中”的“王”读wàng,动词,称王。正则:


(沛公欲)王(关中)


替换为:


$1王(wàng)$2


得到“沛公欲王(wàng)关中”。同篇里“大王来何操?”的“王”读wáng,名词,君王。正则:


(大)王(来何操)


替换为:


$1王(wáng)$2


得到“大王(wáng)来何操”。这里的“大王”是两个字,“大”是捕获组一,“来何操”是捕获组二,“王”夹在中间,所以注音能落在正确位置。作动词时读wàng,作名词时读wáng,这是“王”字最常见的分别。如果只看“王”这个单字,正则没法判断,但加上“沛公欲”和“关中”这些上下文,就能准确区分了。


第十个字,间。《鸿门宴》里“道芷阳间行”的“间”读jiàn,是从小路走的意思。正则:


(道芷阳)间(行)


替换为:


$1间(jiàn)$2


得到“道芷阳间(jiàn)行”。《出师表》里“奉命于危难之间”的“间”读jiān,是中间、期间。正则:


(奉命于危难之)间(,)


替换为:


$1间(jiān)$2


得到“奉命于危难之间(jiān)”。注意这里“间”后面是逗号,所以捕获组二是逗号。这个“间”读jiān,不要读成jiàn。实际上,“间”作“中间”读jiān,作“间隔、离间、从小路”等意思时读jiàn,和“数”一样,要靠上下文来定。


今天的分享就到这里。如果你听懂了,麻烦点个赞再走哈,哈哈谢谢您嘞!希望大家以后遇到读屏朗读古文、多音字的时候,都能想起这个正则技巧,用捕获组和上下文把读音标得明明白白。咱们下次再见!

发表于:2026-08-26 19:53
1个回复
您还没有登录,登录后才可回复。 登录 注册