在Caché中使用正则表达式

1.关于本文 1.关于本文 1.关于本文 1.关于本文 就像Caché模式匹配一样,正则表达式也可以在Caché中用来识别文本数据中的模式--只是表达能力更强。本文简要介绍了正则表达式,以及在Caché中如何使用它。这里提供的信息基于各种来源,最值得拜读的是Jeffrey Friedl的《掌握正则表达式》一书,当然还有Caché在线文档。本文无意讨论正则表达式的所有可能性和细节。如果你想了解更...
摘要由CSDN通过智能技术生成

1.关于本文 1.关于本文 1.关于本文 1.关于本文

就像Caché模式匹配一样,正则表达式也可以在Caché中用来识别文本数据中的模式--只是表达能力更强。本文简要介绍了正则表达式,以及在Caché中如何使用它。这里提供的信息基于各种来源,最值得拜读的是Jeffrey Friedl的《掌握正则表达式》一书,当然还有Caché在线文档。本文无意讨论正则表达式的所有可能性和细节。如果你想了解更多,请参考第5章中列出的信息来源。

使用模式进行文本处理有时会变得很复杂。在处理正则表达式时,我们通常有几种实体:我们正在搜索模式的文本、模式本身(正则表达式)和匹配(文本中与模式匹配的部分)。为了便于区分这些实体,本文档中使用了以下约定。

文本样本以单色字体单独列出,不加引号。

This is a "text string" in which we want to find "something".

除非不明确,否则正文中的正则表达式会以灰色背景显示,如本例。\".*?\".

需要时用不同的颜色突出显示匹配。

这是一个"text string",我们要在其中找到"something"。

代码样本显示在如下的文本框里

set t=" This is a ""text string"" in which we want to find ""something "

set r="\"".*?\"""

w $locate(t,r,,tMatch)

2.一些历史(和一些小事)。

在20世纪40年代初,神经生理学家开发了人类神经系统的模型。几年后,一位数学家用一种代数来描述这些模型,他称之为"正则集"。这种代数的符号被命名为"正则表达式"。

1965年,正则表达式第一次在计算机的范畴内被提及。随着qed,一个作为UNIX操作系统一部分的编辑器,正则表达式开始传播。该编辑器后来的版本提供了一个命令序列g/正则表达式/p(全局、正则表达式、打印),在所有文本行中搜索匹配的正则表达式并输出结果。这个命令序列最终成为独立的UNIX命令行程序"grep"。

今天,许多编程语言都存在正则表达式(RegEx)的各种实现(见3.3节)。

3.Regex 101 3.Regex 101 3.Regex 101 3.Regex 101

就像Caché模式匹配一样,正则表达式也可以用来识别文本数据中的模式--只是表达能力更强。下面的章节概述了正则表达式的组成部分,它们的评估和一些可用的引擎,然后在第4章中详细介绍如何使用。

3.1.正则表达式的组成部分 3.1.正则表达式的组成部分 3.1.正则表达式的组成部分 3.1.正则表达式的组成部分

3.1.1.Regex元字符 3.1.1.Regex元字符 3.1.1.Regex元字符 3.1.1.Regex元字符 3.1.1.Regex元字符 3.1.1.Regex元字符

以下字符在正则表达式中具有特殊意义。

.    (  )  [  ]  \  ^ $  |

如果你需要将它们作为字面数使用,你需要使用反斜杠来转义。你也可以使用 \Q <literal sequence> \E显式指定字面序列。

3.1.2.文字

普通文本和转义字符被视为字面,例如:。

  • abc

abc

  • \f

换页

  • \n

  • \r

  • \v

  • \0+三位数(如:0101)

进制数
Caché (ICU)中使用的regex引擎支持八进制数,最高可达\0377(十进制系统为255)。当你从另一个引擎迁移正则表达式时,
请确保你了解它如何处理八进制数。

  • \x+两位数(如:x41)

六进制数
Caché库确实提供了更多处理十六进制数的选项,请参考文档(链接可以在5.8节找到)。

3.1.3.锚

使用锚点,你可以匹配文本/字符串中的位置ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值