java正则匹配多行的string_java-正则表达式匹配的字符串,最多包含一个字符

我有多行文件和一个只能在整个文件中出现一次的特定字符的文件;我需要一种方法来检查持有哪些文件.

假设我有

1. 00000

2. 00050

3. 05500

4. 00000

五个只能出现一次.如何使用bash和grep将该文件标记为格式错误?

我想您首先要检查哪些行包含5.如果有多行,请停止.然后查看该线上是否有五个以上的数字,如果是,请停止.有一个更好的方法吗?

现在我会通过

grep "5" file | wc -l.

如果不止一个,请停止.如果不是,请继续执行这一行.然后我如何计算有5个数字呢?最初,我使用5 {1},但似乎不起作用-如果字符串为“ 55”,则仅匹配其中的每5个,而我最多需要1个5.然后我想知道是否有5个以上,如果是5个,停下来.但是5 {2,}仅在彼此之间有多个5时才起作用.另一方面,

.*5.*5.*

只匹配2个或多个5的单词,但是看起来很奇怪.

还有更好的建议吗?我敢肯定有,但是是晚上,这是今天我的脑海,对不起.记住,我只能使用grep.

解决方法:

为了确保字符串仅包含5的一次出现,请使用正则表达式模式

^[^5]*5[^5]*$

如果需要5个出现之一或不出现,请使用正则表达式模式

^[^5]*5?[^5]*$

如果要匹配包含多次出现5的那些字符串,请使用regex模式

5.*5

标签:grep,string,java,regex

来源: https://codeday.me/bug/20191122/2060350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值