我有一个名为 a.txt 的文本文件,其中包含以下元素:
fall#i#1 fall (as a fruit) (v.) fall jatuh fall (as a fruit) (v.) jatuh* t͡ʃampaʔ
dog#n#1 dog dog anjing dog anjing ŋand͡ʒi
wing#n#1 wing wing sayap wing sayap kopaʔ
fly#i#1 fly (v.) fly (vb) terbang fly (v.) terbang tobaŋ
mosquito#n#1 mosquito mosquito nyamuk mosquito nyamuk ɲamuʔ
flower#n#2 flower flower bunga (yg jadi buah), kuntum flower bunga* buŋo
sky#n#1 sky sky langit sky langit* ʔlaŋɪt
首先,我需要一个正则表达式来匹配具有最终后牙槽辅音的行,如 [ŋɡʔ],输出应如下所示:
fall#i#1 fall (as a fruit) (v.) fall jatuh fall (as a fruit) (v.) jatuh* t͡ʃampaʔ
wing#n#1 wing wing sayap wing sayap kopaʔ
fly#i#1 fly (v.) fly (vb) terbang fly (v.) terbang tobaŋ
mosquito#n#1 mosquito mosquito nyamuk mosquito nyamuk ɲamuʔ
其次,我需要一个正则表达式来匹配词首的后牙槽骨,输出应该是这样的:
dog#n#1 dog dog anjing dog anjing ŋand͡ʒi
sky#n#1 sky sky langit sky langit* ʔlaŋɪt
第三,我需要一个正则表达式来匹配像这样输出的元音之间的后牙槽:
flower#n#2 flower flower bunga (yg jadi buah), kuntum flower bunga* buŋo
sky#n#1 sky sky langit sky langit* ʔlaŋɪt
我曾经在 Ubuntu 终端中使用这个正则表达式来匹配它们:
grep -P '\b[ʔŋɡk]|[ʔŋɡk]\b|[aiueo][ʔŋɡk][aiueo]' a.txt
但我找不到一个正则表达式来分别匹配它们我的意思是在最后匹配后牙槽骨另一个正则表达式匹配仅在开头和元音之间的另一个正则表达式匹配任何人都可以帮助我谢谢
>答案 0 :(得分:2)
您可以使用的正则表达式是
grep -P '(*UCP)[ŋɡʔ]\b' file # 1
grep -P '(*UCP)\b[ŋɡʔ]' file # 2
grep -P '[aiɪueo][ʔŋɡk][aɪiueo]' file # 3
哪里
(*UCP)[ŋɡʔ]\b
- 匹配 ŋ
、ɡ
或 ʔ
后跟可识别 Unicode 的(由于 (*UCP)
PCRE 动词)词边界(*UCP)\b[ŋɡʔ]
- 匹配前面带有 Unicode 感知的 ŋ
、ɡ
或 ʔ
(由于 (*UCP)
PCRE 动词)词边界[aiɪueo][ʔŋɡk][aɪiueo]
匹配 ŋ
、ɡ
、{{1} 之间的 k
、ʔ
、a
或 i
}、ɪ
、u
和 e
元音(注意 o
和 i
不是同一个字母!)查看grep
demo:
ɪ
输出:
s='fall#i#1 fall (as a fruit) (v.) fall jatuh fall (as a fruit) (v.) jatuh* t͡ʃampaʔ
dog#n#1 dog dog anjing dog anjing ŋand͡ʒi
wing#n#1 wing wing sayap wing sayap kopaʔ
fly#i#1 fly (v.) fly (vb) terbang fly (v.) terbang tobaŋ
mosquito#n#1 mosquito mosquito nyamuk mosquito nyamuk ɲamuʔ
flower#n#2 flower flower bunga (yg jadi buah), kuntum flower bunga* buŋo
sky#n#1 sky sky langit sky langit* ʔlaŋɪt'
grep -P '(*UCP)[ŋɡʔ]\b' <<< "$s"
echo "----"
grep -P '(*UCP)\b[ŋɡʔ]' <<< "$s"
echo "----"
grep -P '[aiɪueo][ʔŋɡk][aɪiueo]' <<< "$s"