我有一个长长的小写国家列表(例如:bali, united kingdom等)
我如何匹配其中所有长度正好是9个字母且同时包含字母 "i "的单词?
目前第一部分我已经做到了。
\b\w{9}\b
谢谢你的建议
EDIT:
所以我做了这个:
\b(?=.*i.*)\w{9}\b
但它不能与 grep -E '\b(?=.*i.*)\w{9}\b' countries.txt
...我到底做错了什么?
你可以用正向查找来检查字符数,然后检查里面是否有i。
(?=^[\w\s]{9}$).*i.*
如果你不能用sigle regex匹配,你应该用两个或更多的尝试。在这个语句中,grep检查长度和一般字符,然后检查i。
grep -E '(\w|\s){9}' regex.txt | grep -E 'i'
如果你希望更严格一些。
grep -E '(\w|\s){9}' regex.txt | grep -E 'i' | grep -E '\w+(\s\w+)*'