Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 如何缩短正则表达式?_Regex_Sed - Fatal编程技术网

Regex 如何缩短正则表达式?

Regex 如何缩短正则表达式?,regex,sed,Regex,Sed,首先,我对正则表达式比较陌生:我已经构建了一个正则表达式,它与sed一起使用,对我来说很好,它看起来像: sed/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]|信息| tst.33.12.carmen//g'但我很确定所有重复出现的字符都可以简化。我该怎么做 我想替换: 20180630180212.407107 | info | tst.33.12.carm

首先,我对正则表达式比较陌生:我已经构建了一个正则表达式,它与sed一起使用,对我来说很好,它看起来像:
sed/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]|信息| tst.33.12.carmen//g'
但我很确定所有重复出现的字符都可以简化。我该怎么做

我想替换:
20180630180212.407107 | info | tst.33.12.carmen |!:来自文本行(前面的时间戳可以是任何数字,第一个“|”后面的字符串是常量)

编辑:,因为OP现在已放置输入样本,所以添加此解决方案

sed -E 's/^[0-9]{8} [0-9]{6}\.[0-9]{6} \| info  \| tst\.[0-9]{2}\.[0-9]{2}\.carmen \| \!:$//' Input_file
代码工作测试:

假设以下是输入_文件:

cat Input_file
20180630 180212.407107 | info  | tst.33.12.carmen | !:
fdfjwhfwifrwvf
vwkdnvkwkvwnvwv
20180630 180212.407107 | info  | tst.33.12.carmen | !:
dwbvwbvwvbb
现在在运行上述代码之后,下面将是输出

sed -E 's/^[0-9]{8} [0-9]{6}\.[0-9]{6} \| info  \| tst\.[0-9]{2}\.[0-9]{2}\.carmen \| \!:$//'  Input_file

fdfjwhfwifrwvf
vwkdnvkwkvwnvwv

dwbvwbvwvbb

使用
sed
-E
选项,您可以像下面一样使用,但要注意,它是从您的解决方案中选择的,并且从未测试过,因为您的帖子中没有生成任何样本

sed -E 's/^[0-9]{8} [0-9]{5}.[0-9]{5} | info  | tst.33.12.carmen | !: //g'

如果您不想匹配前缀的确切格式,只想接受一些数字、点和空格的组合,您可以将第一部分简化为:

[ .0-9]*
完整的
sed
表达式如下所示:

sed 's/^[ .0-9]*| info  | tst\.[0-9]*\.[0-9]*\.carmen | !:$//' file

不确定是否在这里,但在javascript正则表达式中,您可以执行8次
[0-9]{8}
(8位为\d{8})。请尝试始终添加带有代码标记的输入样本和输出样本,以便回复者能够测试解决方案并更好地理解问题。@RavinderSingh13请参阅更新的问题我已经添加了我想要的部分replace@cerr,当然很酷,谢谢添加样品。你能检查一下我的编辑答案并告诉我这是否对你有帮助吗?@cerr,我已经在帖子中添加了一个测试输入文件和代码测试,请告诉我。