正则表达式支持库

正则表达式支持库 帮助手册20080828版 返回支持库手册 返回首页

该支持库实现了对正则表达式（Regular Expression）的支持。注意，本支持库中的所有命令均为高级命令，要求使用者具有一定的正则表达式知识基础。

操作系统支持： Windows、Linux、Unix

其它数据类型：

正则表达式

搜索结果

例程列表：

例程名称 | 下载 | 说明
正则表达式 匹配 搜索 | 正则匹配搜索(linux.e | 演示如何使用正则表达式进行数据格式校验和数据提取
正则替换例程 | 正则替换(linux.e | 演示如何使用 正则表达式.替换

适用版本，正则表达式支持库 （1.2#7版）


正则表达式

正则表达式 普通类型 操作系统支持：Windows、Linux、Unix 跳至：正则表达式支持库

一个正则表达式（regular expression）描述了一种文本匹配的模式，可以被用来检查一段文本是否符合某种特定的格式（匹配模式）或在一段文本中寻找、提取特定格式的子文本等。比如校验一段文本是否为有效的URL地址、从文本文件中提取所包含的E-Mail地址（请参考本支持库附带的例程）。关于正则表达式的更多知识，请查阅相关的书籍、资料。

成员 | 描 述
多行模式 | 逻辑型；初始值为真。指定在搜索、替换时，是否使用多行模式。 如果本成员值为真，字符“^”不仅匹配目标文本的开头，而且匹配目标文本中换行符（字符(10)，字符(13)或 #换行符）的后面；字符“$”不仅匹配目标文本的结尾，而且匹配目标文本中换行符的前面。否则字符“^”仅仅匹配目标文本的开头，“$”也仅仅匹配目标文本的结尾。

方法：

创建 | 是否为空 | 取文本 | 取子表达式个数
匹配 | 搜索 | 替换 | 搜索全部

参见：基本数据类型


创建 (正则表达式)

创建 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；根据指定的正则表达式文本创建一个正则表达式对象。本对象中的原有内容将被释放。成功返回真；否则返回假。

语法： 逻辑型 正则表达式．创建 （正则表达式文本，[是否区分大小写]）

参数名 | 描 述
正则表达式文本 | 必需的；文本型。比如“易语言4\.0(模块|支持库)?”。具体请参阅“正则表达式”的相关书籍资料。
是否区分大小写 | 可选的；逻辑型。本参数指定这个正则表达式在创建成功后进行匹配、搜索、替换时，是否区分大小写。如果本参数被省略，默认值为“真”。

例程：

说明：

创建表达式,创建失败表达式就是空.

参见: 例程


是否为空 (正则表达式)

是否为空 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；如果本对象的内容为空或尚未创建，返回真；否则返回假。

语法： 逻辑型 正则表达式．是否为空 （）

例程：

说明：

判断表达式如果不为空就输出调试表达式对象的个数,如果创建都失败话数量可不会有.

参见:例程


取文本 (正则表达式)

取文本 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；返回以文本形式表示的正则表达式。如果该对象尚未创建，则返回空文本。

语法： 文本型 正则表达式．取文本 （）

例程：

说明：

将表达式的文本输出到编辑框上,如果失败表达式就为空.


取子表达式个数 (正则表达式)

取子表达式个数 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；返回该表达式中子表达式（用圆括号标记）的个数。比如“易语言4\.0(模块|支持库)?”中包含1个子表达式：“(模块|支持库)”。

语法： 整数型 正则表达式．取子表达式个数 （）

例程：

说明：

成功创建表达式后输出调试表达式的子表达式个数.


匹配 (正则表达式)

匹配 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；用一个正则表达式来匹配一个文本。如果这个文本符合正则表达式指定的模式，返回真；否则返回假。比如：正则表达式.创建 (“易语言4\.0(模块|支持库)?”) | 信息框 (正则表达式.匹配 (“易语言4.0支持库”), 0, ) 将显示“真”。

语法： 逻辑型 正则表达式．匹配 （用来匹配的文本）

参数名 | 描 述
用来匹配的文本 | 必需的；文本型。

例程：

说明：

编辑框的邮件地址是否匹配表达式的邮件地址格式。


搜索 (正则表达式)

搜索 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；使用指定的正则表达式搜索指定文本中与该表达式匹配的子文本。

语法： 搜索结果 正则表达式．搜索 （欲被搜索的文本，起始搜索位置，［搜索长度］）

参数名 | 描 述
欲被搜索的文本 | 必需的；文本型。
起始搜索位置 | 必需的；整数型，初始值为“1”。
搜索长度 | 可选的；整数型。本参数和“起始搜索位置”一起指定搜索的范围。如果本参数被省略，默认值为从“起始搜索位置”到文本结尾的长度。

例程：

说明：

表达式搜索文件的E-Mail地址.


替换 (正则表达式)

替换 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；使用指定的正则表达式搜索指定文本中与该表达式匹配的子文本，并按照指定的格式进行替换。

语法： 文本型 正则表达式．替换 （欲被替换的文本，替换格式，起始替换位置，［替换长度］，是否包含不匹配部分，是否全部替换）

参数名 | 描 述
欲被替换的文本 | 必需的；文本型。
替换格式 | 必需的；文本型。本参数指定替换的具体方式。比如“<font color = gray>$1</font>”表示把第一个子表达式所匹配的文本显示为灰色。
起始替换位置 | 必需的；整数型，初始值为“1”。
替换长度 | 可选的；整数型。本参数和“起始替换位置”一起指定替换的范围。如果本参数被省略，默认值为从“起始替换位置”到文本结尾的长度。
是否包含不匹配部分 | 必需的；逻辑型，初始值为“真”。本参数指定替换结果中是否包含与正则表达式不匹配的部分。如果本参数为假，则不匹配部分将被抛弃。
是否全部替换 | 必需的；逻辑型，初始值为“真”。如果本参数为真，则参数1中所有匹配的子文本均被替换，否则仅第一个匹配的子文本被替换。

例程：

说明：

替换文本的对每个子表达式的替换表达式,用?number表示表达的某一子表达式索引的引用.


搜索全部 方法 操作系统支持：Windows、Linux、Unix 所属对象：正则表达式

为高级用户提供，初级用户无需掌握；匹配的所有子文本。返回值包含所有的搜索结果的一维数组，数组原有内容将被销毁，维数也将根据需要做相应调整。本命令的内部是通过循环多次调用“搜索”，每次指定适当的参数，来实现搜索整个文本的。返回值数组的各个成员分别对应每次调用“搜索”的返回值。本命令可高效地一次性取得目标文本中所有的匹配子文本信息。

语法： 搜索结果数组 正则表达式．搜索全部 （欲被搜索的文本）

参数名 | 描 述
欲被搜索的文本 | 必需的；文本型。

例程：

说明

使用指定的正则表达式搜索指定文本中与该表达式匹配的所有子文本，返回类型为数组。

参见: 例程


搜索结果

搜索结果 普通类型 操作系统支持：Windows、Linux、Unix 跳至：正则表达式支持库

该类型的变量一般用来接收和分析“正则表达式.搜索（）”的返回值。

方法：

是否为空 取匹配文本 取子匹配文本

参见： 基本数据类型


是否为空 (搜索结果)

是否为空 方法 操作系统支持：Windows、Linux、Unix 所属对象：搜索结果

为高级用户提供，初级用户无需掌握；如果本对象的内容为空，返回真；否则返回假。

语法： 逻辑型 搜索结果．是否为空 （）

例程：

说明：

判断是否找到E-Mail地址.


取匹配文本 (搜索结果)

取匹配文本 方法 操作系统支持：Windows、Linux、Unix 所属对象：搜索结果

为高级用户提供，初级用户无需掌握；取得与整个正则表达式匹配的子文本。

语法： 文本型 搜索结果．取匹配文本 （［起始位置］，［文本长度］）

参数名 | 描 述
起始位置 | 可选的；整数型，参数数据只能提供变量。该命令调用成功后，本参数存放取得的子文本在整个文本中的起始位置。
文本长度 | 可选的；整数型，参数数据只能提供变量。该命令调用成功后，本参数存放取得的子文本的长度。

例程：

说明：

找到每次用取匹配文本取出匹配文本的长度.


取子匹配文本 (搜索结果)

取子匹配文本 方法 操作系统支持：Windows、Linux、Unix 所属对象：搜索结果

为高级用户提供，初级用户无需掌握；取得与正则表达式中某个子表达式匹配的子文本。

语法： 文本型 搜索结果．取子匹配文本 （子表达式索引，［起始位置］，［文本长度］）

参数名 | 描 述
子表达式索引 | 必需的；整数型。该参数对应与正则表达式中的一个子表达式（以圆括号标记）。索引从1开始。
起始位置 | 可选的；整数型，参数数据只能提供变量。该命令调用成功后，本参数存放取得的子文本在整个文本中的起始位置。
文本长度 | 可选的；整数型，参数数据只能提供变量。该命令调用成功后，本参数存放取得的子文本的长度。

例程：

说明：

每一次取出表达式的第一个匹配文本.


系统基本数据类型列表及其说明如下：

  1. 字节型。可容纳 0 到 255 之间的数值。

  2. 短整数型。可容纳 -32,768 到 32,767 之间的数值，尺寸为 2 个字节。

  3. 整数型。可容纳 -2,147,483,648 到 2,147,483,647 之间的数值，尺寸为 4 个字节。

  4. 长整数型。可容纳 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的数值，尺寸为 8 个字节。

  5. 小数型。可容纳 3.4E +/- 38 (7位小数) 之间的数值，尺寸为 4 个字节。

  6. 双精度小数型。可容纳 1.7E +/- 308 (15位小数) 之间的数值，尺寸为 8 个字节。

  7. 逻辑型。值只可能为“真”或“假”，尺寸为 2 个字节。“真”和“假”为系统预定义常量，其对应的英文常量名称为“true”和“false”。

  8. 日期时间型。用作记录日期及时间，尺寸为 8 个字节。

  9. 文本型。用作记录一段文本，文本由以字节 0 结束的一系列字符组成。

  10. 字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换，在程序中允许使用字节数组的地方也可以使用字节集，或者相反。字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，使用数组型数值数据进行赋值等等，都可以被字节集所使用。两者之间唯一的不同是字节集可以变长，因此可把字节集看作可变长的字节数组。

  11. 子程序指针。用作指向一个子程序，尺寸为 4 个字节。具有此数据类型的变量可以用来间接调用子程序。参见例程 sample.e 中的相应部分。

    在以上的基本数据类型中，字节型、短整数型、整数型、长整数型、小数型、双精度小数型被统称为“数值型”，它们之间可以任意转换。不过编程需要注意转换可能带来的精度丢失。譬如：将整数 257 转换为字节后的结果为 1 ，这是因为值 257 超出了字节型数据的最大上限 255 ，从而产生了溢出。

    另外，通用型数据类型仅在系统内部使用，它能够匹配所有的系统基本数据类型、库定义数据类型、自定义数据类型。