微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式匹配后牙槽辅音

如何解决正则表达式匹配后牙槽辅音

我有一个名为 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

但我找不到一个正则表达式来分别匹配它们我的意思是在最后匹配后牙槽骨另一个正则表达式匹配仅在开头和元音之间的一个正则表达式匹配任何人都可以帮助我谢谢

>

解决方法

您可以使用的正则表达式是

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ʔai }、ɪue 元音(注意 oi 不是同一个字母!)

查看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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?