Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 最大为一个字符的匹配字符串的Regexp_Java_Regex_String_Grep - Fatal编程技术网

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,但不知怎的错过了。现在我觉得很傻,但是谢谢你。