我想写一个正则表达式来搜索以' test1'开头的字符串。并以第一个结尾'结束。在同一行。
我试过
test1[^end]*end
但失败了。任何建议/提示将不胜感激。
我正在尝试使用' sed'和测试字符串是:
test1123andendtest2456end
我在尝试什么:
echo 'test1123andendtest2456end'| sed -e 's/test1.*end/matrix/'
结果:
matrix
我期待什么:
matrixtest2456end
答案 0 :(得分:1)
应该是:
^test.*end$
^
是该行的开头test
是文字测试 .*
表示任何字符中的零个或多个。 *
贪婪的行为意味着它会消耗尽可能多的字符来满足条件。这包括使用字符串 end 的实例,只要在结尾处还有一个实例。end
是文字 end $
是该行的结尾。 旁注: *
运算符的贪婪在此示例中并不重要,因为最终结尾以行尾结束$
。
sed
使用基本posix常规表达式。它们在manual of grep
答案 1 :(得分:0)