`
lane_cn
  • 浏览: 53727 次
社区版块
存档分类
最新评论

为什么我们常忘记使用正则表达式

阅读更多
有这么一个奇怪的现象,设计人员常常忘记使用一个非常了不起的发明:正则表达式。他们宁愿自己实现非常复杂的字符串处理逻辑,在一堆if、else里面晕头转向,面对变化的需求感觉束手无策。

今天系统出现一个错误,判断一个电话号码类型的时候出现错误,误将一个0133开头的号码当作中国电信的号码。在一番寻找后,认为错误可能在一段程序里。打开程序的配置,定义了各种通配府、开闭范围标记、号码头,比较复杂。查到最后,是这个配置的解释程序出现了错误。配置中有一个项目:以01开头的号码属于中国电信。这个配置的位置在0133的前面,程序又没有使用最长匹配,而是用的最快匹配,从而导致了错误。错误很简单,但是比较隐蔽,开发人员找了半天。

更麻烦的是,现在这个错误不好改了。系统已经运行了很长的时间,配置项目的序号不敢改,添加配置项目也要评估一下影响有多大。改程序也很麻烦。

系统里面很多地方有这样的判断,判断字符串的开头、结尾、长度、区间……全是使用if-else的判断。有了新业务,现有的配置规则不一定能支持,修改起来一定很麻烦。

为什么不用正则表达式呢?判断规则大大的简化,程序逻辑简单了,可配置性强,完全是数据驱动的形式,测试起来也更容易,万一有了错误,改改表达式就行了。需求变化也不怕,有什么串不能用正则表达式来表示呢?

还有什么情况下可以使用正则表达式呢:输入框的合法性检查,命令行的解释,字符串的替换,IP地址的范围界定……

应该把“正则表达式”五个字写在纸条上,贴在墙上。在设计的时候,要提醒自己不要忘记使用这么一个伟大的小发明。

分享到:
评论

相关推荐

    正则表达式系统教程.RAR

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。它在编程、数据分析、...在学习过程中,不要忘记理论与实践相结合,多做练习,不断挑战自己,你将会发现正则表达式的世界既有趣又实用。

    深入浅出正则表达式

    在《深入浅出正则表达式》这个系列文档中,我们可以期待涵盖以下关键知识点: 1. **基础概念**:首先,文章会介绍正则表达式的起源和基本概念,如元字符(如`.`、`^`、`$`、`\d`、`\w`等)、量词(如`*`、`+`、`?`...

    正则表达式30分钟教程正则表达式30分钟教程正则表达式30分钟教程正则表达式30分钟教程正则表达式30分钟教程

    最后,不要忘记实践是学习正则表达式最好的方式。通过编写实际的匹配和替换代码,解决具体问题,你将在实践中不断巩固和提升正则表达式的使用技巧。在短短的30分钟内,你可能无法掌握所有的正则表达式知识,但可以...

    js正则表达式测试含实例.rar

    - 不要忘记在字符串中转义特殊字符,例如在创建动态正则表达式时。 通过学习和实践"js正则表达式测试含实例.rar"中的内容,开发者可以更有效地利用JavaScript中的正则表达式,解决各种文本处理和验证问题。这个...

    正则表达式入门精通学习

    希望本教程能够为你打开一扇通往正则表达式世界的大门,让你能够在日常工作中更加得心应手。记住,实践是掌握任何技能的关键,因此不要忘记在实际项目中应用所学知识,不断挑战自我,提升自己的技能水平。

    基于Python正则表达式的管制指令匹配与提取 (1).pdf

    在本文中,作者提出了一种基于Python正则表达式的管制指令匹配与提取方法...通过使用正则表达式处理文本数据,提取出关键信息,系统可以有效地辅助管制员在繁忙时刻进行准确的指挥,降低人为失误的风险,确保飞行安全。

    正则表达式30分钟入门教程(详细)

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。本30分钟入门教程将带你深入理解正则表达式的基本概念,助你在短时间内掌握这一强大的...

    正则表达式测试工具RegexTester

    正则表达式测试工具RegexTester 最新版是RegexTester.V1.2013.4.3.rar 完善了正则词法分析,修正了编辑选择文字时自动选择无关部分 功能展望 语法词法高亮显示,在线网站支持查看、搜索,提交收录正则 特色: ...

    Java正则表达式易错知识点汇总

    在其他语言中,`\\` 通常表示一个单独的反斜线 `\`,但在Java中,它会转义为一个正则表达式的反斜线。 3. **贪婪与非贪婪量词**: - 量词如 `*`、`+`、`?` 默认是贪婪的,意味着它们会尽可能多地匹配字符。例如,`...

    javaweb新浪微博邮箱登录界面,图书周排行榜界面,正则表达式验证用户注册页面前端代码资源包

    我们将深入探讨每个方面,同时引入正则表达式在验证用户输入中的应用。 首先,让我们看看"新浪微博邮箱登录界面"。这个界面通常会包含用户名(可以是手机号或邮箱)输入框、密码输入框、登录按钮,以及可能的记住...

    Python爬虫之正则表达式的使用教程详解

    首先,我们需要了解Python中的正则表达式模块re的基本使用方法。re模块包含多个函数用于实现正则表达式的功能,如re.match()、re.search()等。 re.match()函数尝试从字符串的起始位置匹配一个模式。如果从起始位置...

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    正则表达式由于不经常使用,所以容易经常忘记,下面小编把常用的函数和功能,简明扼要的罗列在此,以备日后查看: RegExp对象的函数常用的有2个 1、test函数 用法:RegExpObject.test(string) 返回:如果字符串 ...

    regexify-string:通过使用正则表达式来装饰字符串的方法

    正则表达式字符串 使用正则表达式装饰字符串的方法:React组件,HTML标记等 完美搭配:字符串,html标记,react,react-native 安装 $ npm install --save regexify-string 原料药 regexifyString({模式,装饰器,...

    jQuery正则表达式表单验证

    本教程将聚焦于利用jQuery结合正则表达式进行表单验证。 正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在jQuery中,我们可以使用`regex`或`regexp`对象与`$.fn....

Global site tag (gtag.js) - Google Analytics