【发布时间】:2015-12-10 11:32:34
【问题描述】:
我有一个文件 input.txt,内容如下:
foo
[assembly: AssemblyVersion("1.2.3")]
bar")]
quux
为了匹配输入中的1.2.3,使用以下脚本:
#!/bin/bash
regex='\[assembly: AssemblyVersion\("(.*)"\)\]'
fileContent=$(cat input.txt)
[[ "$fileContent" =~ $regex ]]
echo "${BASH_REMATCH[1]}"
我希望输出是 1.2.3 但它是:
1.2.3")]
bar
为什么会这样?如何解决?
https://regex101.com 的正则表达式测试器按预期工作。
【问题讨论】:
-
贪婪。试试
'\[assembly: AssemblyVersion\("([^()]*)"\)\]'。 -
@stribizhev 哇,不错,确实有效。非常感谢!