Java 最大为一个字符的匹配字符串的Regexp
我有多行文件和某个字符,可能只出现一次(在整个文件中);我需要一种方法来检查保存哪些文件 假设我有Java 最大为一个字符的匹配字符串的Regexp,java,regex,string,grep,Java,Regex,String,Grep,我有多行文件和某个字符,可能只出现一次(在整个文件中);我需要一种方法来检查保存哪些文件 假设我有 1. 00000 2. 00050 3. 05500 4. 00000 五次只能发生一次。如何使用bash和grep将此文件标记为格式错误 我想您应该首先检查哪些行包含5。如果不止一条线,停下来。然后看看那条线上有没有超过一个五个,如果有,停下来。有更好的方法吗 现在我会通过 grep "5" file | wc -l. 如果不止一个,停下来。如果没有,继续这一行。那我怎么数一数有多少个5呢?
1. 00000
2. 00050
3. 05500
4. 00000
五次只能发生一次。如何使用bash和grep将此文件标记为格式错误
我想您应该首先检查哪些行包含5。如果不止一条线,停下来。然后看看那条线上有没有超过一个五个,如果有,停下来。有更好的方法吗
现在我会通过
grep "5" file | wc -l.
如果不止一个,停下来。如果没有,继续这一行。那我怎么数一数有多少个5呢?起初我使用了5{1},但这似乎不起作用——如果字符串是“55”,它只匹配其中的每5个,而我最多需要15个。然后我想我会看看是否有超过一个5,如果是的话,停下来。但是5{2,}只在有多个5在后面时才起作用。另一方面,
.*5.*5.*
只匹配2个或更多5的单词,但它看起来很奇怪
还有更好的建议吗?我肯定有,但现在是晚上,今天我脑子里只想着这个,对不起。记住,我只能使用grep。要确保字符串只包含一次
5
,请使用regex模式
^[^5]*5[^5]*$
^[^5]*5?[^5]*$
5.*5
如果需要一次或不需要出现5
,请使用regex模式
^[^5]*5[^5]*$
^[^5]*5?[^5]*$
5.*5
如果要匹配包含多个5
的字符串,请使用regex模式
^[^5]*5[^5]*$
^[^5]*5?[^5]*$
5.*5
你可以做:
grep -o 5 file | wc -w
说明:
grep-o
-仅输出“匹配项”(在本例中为“5”)wc-w
-计算“单词”(代币)怎么样:^[^5]*5[^5]*$
为什么您只能使用grep-这是家庭作业吗?谢谢!1和3工作得很好,但我不能让2工作,即使我使用-p。我目前使用grep-P“^[^3]*3\?[^3]*$”文件
,但这似乎不起作用。不逃跑?也没有。使用Cygwin,这可能是问题所在吗?@jns-With-P
不要逃避问号!使用grep-P“^[^3]*3?[^3]*$”文件
That-o标志。。。我做了RTFM,但不知怎的错过了。现在我觉得很傻,但是谢谢你。