- Rexx 教程
- Rexx - 首页
- Rexx - 概述
- Rexx - 环境
- Rexx - 安装
- Rexx - 插件安装
- Rexx - 基本语法
- Rexx - 数据类型
- Rexx - 变量
- Rexx - 运算符
- Rexx - 数组
- Rexx - 循环
- Rexx - 决策
- Rexx - 数字
- Rexx - 字符串
- Rexx - 函数
- Rexx - 栈
- Rexx - 文件I/O
- Rexx - 文件函数
- Rexx - 子程序
- Rexx - 内置函数
- Rexx - 系统命令
- Rexx - XML
- Rexx - Regina
- Rexx - 解析
- Rexx - 信号
- Rexx - 调试
- Rexx - 错误处理
- Rexx - 面向对象
- Rexx - 可移植性
- Rexx - 扩展函数
- Rexx - 指令
- Rexx - 实现
- Rexx - Netrexx
- Rexx - Brexx
- Rexx - 数据库
- 手持式和嵌入式
- Rexx - 性能
- Rexx - 最佳编程实践
- Rexx - 图形用户界面
- Rexx - Reginald
- Rexx - Web编程
- Rexx 有用资源
- Rexx - 快速指南
- Rexx - 有用资源
- Rexx - 讨论
Rexx - 解析
Rexx 最强大的功能之一是其解析文本值的能力。您可能在其他任何编程语言中都看不到这一点。
parse 语句的通用格式如下:
语法
PARSE {UPPER|LOWER|CASELESS} source {template}
其中:
UPPER − 解析前将源代码转换为大写。
LOWER − 解析前将源代码转换为小写。
CASELESS − 传递此参数时,将忽略大小写。
source − 这是需要解析的源代码。为此提供了许多选项,可以是以下任何一个:
ARG − 程序或过程的参数可以用作源代码。
LINEIN − 下一行输入可以用作源代码。
SOURCE − 程序的源信息可以用作源代码。
VAR name − 变量的值可以用作源代码。
template − 此参数指定如何解析源代码。为此提供了许多选项。下面列出了一些。
变量名 − 分配给变量的值。
字面字符串 − 可用作分割字符串的模式的字面字符串。
# − 源代码本身中的绝对字符位置。因此,如果您指定值为 5,则将使用第 5 个字符。
+# − 源代码本身中的相对字符位置。因此,如果您指定值为 5,则将相对使用第 5 个字符。
让我们来看一个在 Rexx 中如何完成解析的简单示例。
示例
/* Main program */ parse value 'This is a Tutorial' with word1 word2 word3 word4 say "'"word1"'" say "'"word2"'" say "'"word3"'" say "'"word4"'"
上面的程序解析短语中的单词。当一个值由仅以一个空格分隔的单词组成,并且没有前导或尾随空格时,该值很容易解析为已知数量的单词,如下所示。
parse 函数用于在 Rexx 中获取字符串值,然后将其分解成单词。在上面的示例中,单词随后被分割并存储在单词变量中。
上述程序的输出如下:
'This' 'is' 'a' 'Tutorial'
以下程序显示了另一个解析示例。这次我们使用 while 子句进行解析。
示例
/* Main program */ phrase = 'This is a Tutorial' do while phrase <> '' parse var phrase word phrase say "'"word"'" end
上述程序将给出以下输出:
'This' 'is' 'a' 'Tutorial'
位置解析
Rexx 还允许使用位置解析。让我们来看一个如何使用 parse 语句实现位置解析的示例。
示例
/* Main program */ testString = "Doe John M. 03/03/78 Mumbai India"; parse var testString name1 11 name2 21 birthday 31 town 51 country say name1 say name2 say birthday say town say country
从上面的示例中,您可以注意到,除了变量名外,我们还指定了字符串应结束的位置。因此,对于 name1,我们应该在第 11 个字符处结束,然后开始解析 name2。
上述程序的输出如下:
Doe John M. 03/03/78 Mumbai India
您也可以在这种情况下使用相对位置解析。
示例
/* Main program */ testString = "Doe John M. 03/03/78 Mumbai India"; parse var testString name1 +10 name2 +10 birthday +10 town +20 country say name1 say name2 say birthday say town say country
上述程序的输出如下所示。
Doe John M. 03/03/78 Mumbai India