正则表达式将环境变量分成列

时间:2011-12-09 11:03:24

标签: regex

我有一些环境变量

我想将其拆分为列(仅使用正则表达式),因此对于任何普通的环境变量我可以使用=,但在我的情况下,我有一个名为{{1的var (见下文)那么在这种情况下如何使用正则表达式将我的env vars拆分成单独的列?

LS_COLORS

我不能使用像USER=idptest1 GROUP=support HOST=beetle LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: G_BROKEN_FILENAMES=1 这样的东西来分开吗?如果我使用(?<=^[\w]+)=,则会选择^[\w]+=(仅限名称部分),但不会从值部分中选择。

您可以查看here如果突出显示name=的第一次出现,我的工作将完成。感谢

1 个答案:

答案 0 :(得分:1)

从简单的事情开始:

^(.*?)=(.*)$

这有一个非贪婪的捕获组来捕获变量名称和一个贪婪的捕获组来捕获第一个&#39; =&#39;之后的所有内容。直到行尾为值。

如果要处理空格,请添加

^\s*(.*?)\s*=\s*(.*?)\s*$