首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用grep添加正则表达式

用grep添加正则表达式
EN

Ask Ubuntu用户
提问于 2019-08-09 12:23:20
回答 3查看 197关注 0票数 2

我必须使用grep从文本文件中找到8个邮政编码,每个邮政编码的字符顺序如下: 1.大写字母2.数字3.大写字母4.空格(可选) 5.数字6.大写字母7.

我使用了grep命令:

代码语言:javascript
复制
grep '[A-Z][0-9][A-Z][0-9+[][0-9][A-Z][0-9]'

这给了我5个在字符4处有空格的邮政编码。

我还使用了这个grep命令:

代码语言:javascript
复制
grep '[A-Z][0-9][A-Z][0-9\.][A-Z][0-9]'

这给了我最后的3个邮政编码,没有空格在字符4。

我不知道如何编写一个命令,说明空格可以是可选的。谢谢

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2019-08-09 12:36:18

ERE量词?表示零或一次出现。所以

代码语言:javascript
复制
grep -E '[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]'

如果要允许零或多个空格,请将?更改为*。要允许制表符和空格,可以使用[ \t]?[[:blank:]]?或(在grep中) \s?

票数 2
EN

Ask Ubuntu用户

发布于 2019-08-09 12:37:02

下面这样的表达式应该有效:

代码语言:javascript
复制
grep '[A-Z][0-9][A-Z][ ]*[0-9][A-Z][0-9]' file
票数 0
EN

Ask Ubuntu用户

发布于 2019-08-09 12:49:01

我的建议:

代码语言:javascript
复制
grep -P "[A-Z][0-9][A-Z][0-9][ ]{0,1}[0-9][A-Z][0-9]" file
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1164565

复制
相关文章

相似问题

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