Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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 - Fatal编程技术网

Regex将环境变量分隔为列

Regex将环境变量分隔为列,regex,Regex,我有一些环境变量 我想将其拆分为列(仅使用regex),因此对于任何正常的环境变量,我可以只使用=,但在我的示例中,我有一个名为LS\u COLORS(见下文)的变量,那么在这种情况下,如何使用regex将我的环境变量拆分为单独的列呢 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;3

我有一些环境变量

我想将其拆分为列(仅使用regex),因此对于任何正常的环境变量,我可以只使用
=
,但在我的示例中,我有一个名为
LS\u COLORS
(见下文)的变量,那么在这种情况下,如何使用regex将我的环境变量拆分为单独的列呢

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

我不能使用类似于
(?的东西,从以下简单的东西开始:

^(.*?)=(.*)$
它有一个非贪婪的捕获组来捕获变量名,还有一个贪婪的捕获组来捕获第一个“=”之后直到行末的所有内容作为值

如果要处理空白,请添加

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

定义“仅限正则表达式”。你似乎在使用某种拆分函数。如果它工作得更好,为什么不使用另一个呢?你使用的是什么语言/工具?@Qtax:假设我只需要突出显示它。顺便说一句,我使用的是java。@Qtax:我主要想使用像
(?正则表达式选择了所有行,我不想要,我只想选择第一次出现的
=
,也许在您心目中的正则表达式实现中是这样的(您的问题还不清楚),在我经常使用的Java和Scala中,默认的是基于行的匹配,您可以覆盖它以匹配整个输入。在Java中,这被称为DOTALL模式,它可以与(?s)内联启用。我确信您想到的实现中有一个等效的标志。