首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配后牙槽辅音

匹配后牙槽辅音
EN

Stack Overflow用户
提问于 2021-01-27 06:56:41
回答 1查看 59关注 0票数 2

我有一个名为a.txt的文本文件,其中包含以下元素:

代码语言:javascript
复制
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

首先,我需要一个正则表达式来匹配具有最后一个肺泡后辅音的行,如ŋɡʔ输出应该如下所示:

代码语言:javascript
复制
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ʔ

第二,我需要一个正则表达式来匹配输出单词开头的后牙槽数,如下所示:

代码语言:javascript
复制
dog#n#1 dog dog anjing  dog anjing  ŋand͡ʒi
sky#n#1 sky sky langit  sky langit* ʔlaŋɪt

第三,我需要一个正则表达式来匹配像这样的输出元音之间的后槽线:

代码语言:javascript
复制
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终端中使用这个regex来匹配它们:

代码语言:javascript
复制
grep -P '\b[ʔŋɡk]|[ʔŋɡk]\b|[aiueo][ʔŋɡk][aiueo]' a.txt

但是我找不到一个正则表达式来分别匹配它们,我的意思是,一次匹配后牙槽线在结尾,另一个正则表达式只在开头,而元音之间的另一个正则表达式匹配,谁能帮我完成这个谢谢吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 23:04:37

您可以使用的regexp是

代码语言:javascript
复制
grep -P '(*UCP)[ŋɡʔ]\b' file           # 1
grep -P '(*UCP)\b[ŋɡʔ]' file           # 2
grep -P '[aiɪueo][ʔŋɡk][aɪiueo]' file  # 3

哪里

  • (*UCP)[ŋɡʔ]\b -在aɪuɪu之间,匹配ŋɡʔ后面的Unicode感知单词ŋɡʔ--匹配在aiɪuɪu之间的ŋɡʔeo元音(,注意,iɪ不是同一个字母!)

grep demo

代码语言:javascript
复制
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"

输出:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65914231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档