组合字符串和位置模式: 特殊情况
有一种特殊情况是,绝对和相对位置模式的工作方式不同。
关于此任务
我们展示了使用包含字符串模式的模板进行解析如何跳过与模式匹配的源字符串中的数据 (请参阅 包含字符串模式的模板)。 但是,包含以下序列的模板 不会 跳过匹配的 data.:
- 字符串模式
- 变量名称
- 相对位置模式
相对位置模式相对于与字符串模式匹配的第一个字符移动。 因此,赋值包含与字符串模式匹配的源字符串中的数据。
/* Template containing string pattern, then variable name, then */
/* relative positional pattern does not skip over any data. */
string='REstructured eXtended eXecutor'
parse var string var1 3 junk 'X' var2 +1 junk 'X' var3 +1 junk
say var1||var2||var3 /* Concatenates variables; displays: "REXX" */
以下是此模板的工作方式:
|var1 3| |junk 'X'| |var2 +1| |junk 'X'| |var3 +1 | | junk |
+-------+ +--------+ +-------+ +---------+ +--------+ +------+
| | | | | |
Put Starting Starting Starting Starting Starting
characters at 3, put with first with char- with with char-
1 through characters 'X' put 1 acter after second 'X' acter
2 in var1. up to (not (+1) first 'X' put 1 (+1) after sec-
(Stopping including) character put up to character ond 'X'
point is first 'X' in var2. second 'X' in var3. put rest
3.) in junk. in junk. in junk.
var1='RE' junk= var2='X' junk= var3='X' junk=
'structured e' 'tended e' 'ecutor'