Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database_Sas - Fatal编程技术网

Regex 在括号内反转两个字符串

Regex 在括号内反转两个字符串,regex,database,sas,Regex,Database,Sas,我有一个坐标列,它引用了一个具有3维[z][x][y]的ID。我想做的是用[y]反转[x]维度,使其成为一个具有(仍然)3个维度但顺序不同的表:[z][y][x] 以下是该列的一个片段: +------------------------+ |坐标| +------------------------+ |ID_01.02.a[][01][20]| |ID_02.00[010][02][017]| |ID_03.01[][[010]| |ID_04.01.w[010][]| +---------

我有一个
坐标
列,它引用了一个具有3维
[z][x][y]
的ID。我想做的是用
[y]
反转
[x]
维度,使其成为一个具有(仍然)3个维度但顺序不同的表:
[z][y][x]

以下是该列的一个片段:

+------------------------+
|坐标|
+------------------------+
|ID_01.02.a[][01][20]|
|ID_02.00[010][02][017]|
|ID_03.01[][[010]|
|ID_04.01.w[010][]|
+------------------------+
下面是重现此代码段的代码:

数据已经存在;
输入坐标:$30。;
数据线;
ID_01.02.a[][01][20]
ID_02.00[010][02][017]
ID_03.01[][[010]
ID_04.01.w[010][]
;
最终表格预计为:

+------------------------+
|坐标|
+------------------------+
|ID_01.02.a[][20][01]|
|ID_02.00[010][017][02]|
|ID_03.01[][010][]|
|ID_04.01.w[010][]|
+------------------------+

当我尝试使用scan函数时,它不起作用,因为我找不到一个可靠的索引,例如
x\u after=trim(scan(坐标,2,“[]))
。实际上,如果z轴不为空,它将输出z轴,如果z轴为空,它将输出x轴。

您可以通过
PRXCHANGE
访问正则表达式电源,以修改包含简单模式和复杂模式的值

例如:

数据已经存在;
输入坐标$char50。;
数据线;
ID_01.02.a[][01][20]
ID_02.00[010][02][017]
ID_03.01[][[010]
ID_04.01.w[010][]
;
数据需求;
集有;
放置坐标;
坐标=prxchange
('s/(.\[.\])(\[.\])(\[.\])/$1$3$2/'
1.
,坐标
);
放置坐标/;
跑
日志

ID_01.02.a[][01][20]
ID_01.02.a[][20][01]
ID_02.00[010][02][017]
ID_02.00[010][017][02]
ID_03.01[][[010]
ID_03.01[][010][]
ID_04.01.w[010][]
ID_04.01.w[010][]

您可以通过
PRXCHANGE
访问正则表达式电源,以修改包含简单模式和复杂模式的值

例如:

数据已经存在;
输入坐标$char50。;
数据线;
ID_01.02.a[][01][20]
ID_02.00[010][02][017]
ID_03.01[][[010]
ID_04.01.w[010][]
;
数据需求;
集有;
放置坐标;
坐标=prxchange
('s/(.\[.\])(\[.\])(\[.\])/$1$3$2/'
1.
,坐标
);
放置坐标/;
跑
日志

ID_01.02.a[][01][20]
ID_01.02.a[][20][01]
ID_02.00[010][02][017]
ID_02.00[010][017][02]
ID_03.01[][[010]
ID_03.01[][010][]
ID_04.01.w[010][]
ID_04.01.w[010][]
您可以使用SCAN()完成此操作。使用
[]
作为分隔符和
m
修饰符。但是现在字符串有6个值,而不是4个值,因为在带有
][
的位置之间有空值

这里有一种方式可以显示正在发生的事情

数据已经存在;
输入坐标$50。;
卡;
ID_01.02.a[][01][20]
ID_02.00[010][02][017]
ID_03.01[][[010]
ID_04.01.w[010][]
;
数据需求;
集有;
我想要50美元;
阵列温度[6]$50;
i=1时变暗(温度);
温度[i]=扫描(坐标,i,“[]”,m');
结束;
want=cats(临时[1]、'['、临时[2]、']['、临时[6]、']['、临时[4]、']');
第一滴;
跑
结果:

Obs坐标需要temp1 temp2 temp3 temp4 temp5 temp6
1 ID_01.02.a[][01][20]ID_01.02.a[][20][01]ID_01.02.a 01 20
2 ID_02.00[010][02][017]ID_02.00[010][017][02]ID_02.00 010 02 017
3 ID_03.01[][]010]ID_03.01[][010][]ID_03.01 010
4 ID_04.01.w[010][]ID_04.01.w[010][]ID_04.01.w 010
您可以使用SCAN()。使用
[]
作为分隔符和
m
修饰符。但是现在您的字符串有6个值,而不是4个值,因为
[
位置之间有空值

这里有一种方式可以显示正在发生的事情

数据已经存在;
输入坐标$50。;
卡;
ID_01.02.a[][01][20]
ID_02.00[010][02][017]
ID_03.01[][[010]
ID_04.01.w[010][]
;
数据需求;
集有;
我想要50美元;
阵列温度[6]$50;
i=1时变暗(温度);
温度[i]=扫描(坐标,i,“[]”,m');
结束;
want=cats(临时[1]、'['、临时[2]、']['、临时[6]、']['、临时[4]、']');
第一滴;
跑
结果:

Obs坐标需要temp1 temp2 temp3 temp4 temp5 temp6
1 ID_01.02.a[][01][20]ID_01.02.a[][20][01]ID_01.02.a 01 20
2 ID_02.00[010][02][017]ID_02.00[010][017][02]ID_02.00 010 02 017
3 ID_03.01[][]010]ID_03.01[][010][]ID_03.01 010
4 ID_04.01.w[010][]ID_04.01.w[010][]ID_04.01.w 010

稍作修改,您仍然可以使用您的程序:
x_after=trim(扫描(tranwrd(坐标“[]”,“[]”,“[]”),2“[]”)
。有人知道为什么在这个问题中每隔一行用倾斜字体显示数据吗?为什么它甚至在数据块中寻找格式线索?我认为这和语言语法处理有关(仍在挖掘)。有趣的部分是带有类的span
hljs-*
。挖掘时,我发现现在支持HTML表格!在meta中谈论下划线后的斜体。解决方法似乎是将none指定为代码语言
``` none
,只需稍作更改,您仍然可以使用您的程序:
x_after=trim(scan(tranwrd(坐标“[]”、“[]”)、2“[]”)有人知道为什么用倾斜字体显示这个问题中的每一行数据吗?为什么它甚至是loo