我必须获取存储在模式'[]'之间的'字符串'。实例如下 [字符串] _someOtherString
要获取的字符串长度不固定。如果你能帮我这么做,我将不胜感激。我不想多次使用cut命令。我想看看是否有一种简单而优雅的方式。如果你可以建议我解决这个问题的多种方法(帮助我学习和比较不同的技术),那就太好了。
答案 0 :(得分:1)
一种方法是使用grep
:
$ grep -oP '(?<=\[).*(?=\])' <<< '[string]_someOtherString'
string
答案 1 :(得分:0)
使用python可以执行以下操作:
import re
stg = '[string]_someOtherString'
print re.findall('\[([^\[\]]+)\]', stg)
或在shell中:
python -c "import re, sys; print re.findall('\[([^\[\]]+)\]', sys.argv[1])" '[string]_someOtherString'
如果你知道你只有一个数学字符串:
python -c "import re, sys; print re.findall('\[([^\[\]]+)\]', sys.argv[1])[0]" '[string]_someOtherString'