52、正则表达式的解释与评估

正则表达式的解释与评估

正则表达式存在的问题

正则表达式在实际使用中存在一些挑战,主要包括以下几点:
1. 无法利用领域知识 :抽象概念领域通常通过隐喻映射从直接基于经验的领域构建。正则表达式是一种形式化符号,与用户想要处理的领域缺乏紧密映射,这使得新用户难以掌握。而且,表达式求值器的行为没有清晰的心理模型。
2. 角色表达性不足 :普通正则表达式很少有标识能帮助用户识别与输入字符串相关部分匹配的正则表达式部分。用户通常通过使用对应输入主要部分的子表达式,并使用缩进直观地表示子表达式的角色来解决这个问题。
3. 易出错 :正则表达式中,不同选择之间共享部分和非共享部分没有明确划分,因此很容易出错,并且对可匹配的变化贡献更大。

解释表示及其计算

为了解决上述问题,提出了几种解释表示方法,旨在突出正则表达式的组成结构并识别常见格式。
1. 结构分析与分解
- 分组字符序列 :将不包含括号表达式(如 (···) [···] | )的最大连续字符序列分组到括号表达式中。这一步本质上是对正则表达式字符流进行分词。例如,对于表达式 <\s* [aA] \s+ [hH] [rR] [eE] [fF] =f\s*>\s*<\s* [iI] [mM] [gG] \s+ [sS] [rR] [cC] =f\s*> [^<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值