`
rensanning
  • 浏览: 3514486 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37486
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:604361
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:678130
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:87304
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:399842
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69079
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:90504
社区版块
存档分类
最新评论

让正则表达式更人性化

 
阅读更多
正则表达式应该是程序员的基本功,但这种符号记法并不是很人性化。VerbalExpressions 通过链式方法和更易于理解的方法名使正则表达式的书写更简单、更易读。最初的VerbalExpressions是一个JavaScript的library,不过目前已经有很多语言(Ruby、C#、Python、Java、Groovy、PHP、Haskell、C++、Objective-C)的实现版本。

https://github.com/VerbalExpressions/JSVerbalExpressions

Examples

Testing if we have a valid URL
// Create an example of how to test for correctly formed URLs
var tester = VerEx()
            .startOfLine()
            .then( "http" )
            .maybe( "s" )
            .then( "://" )
            .maybe( "www." )
            .anythingBut( " " )
            .endOfLine();

// Create an example URL
var testMe = "https://www.google.com";

// Use RegExp object's native test() function
if( tester.test( testMe ) ) alert( "We have a correct URL "); // This output will fire
else alert( "The URL is incorrect" );

console.log( tester ); // Ouputs the actual expression used: /^(http)(s)?(\:\/\/)(www\.)?([^\ ]*)$/


Replacing strings
// Create a test string
var replaceMe = "Replace bird with a duck";

// Create an expression that seeks for word "bird"
var expression = VerEx().find( "bird" );

// Execute the expression like a normal RegExp object
var result = expression.replace( replaceMe, "duck" );

alert( result ); // Outputs "Replace duck with a duck"


Shorthand for string replace
var result = VerEx().find( "red" ).replace( "We have a red house", "blue" );
alert( result ); // Outputs "We have a blue house"


同时推荐一个在线的正则表达式可视化工具:http://www.regexper.com/
  • 大小: 52.5 KB
1
3
分享到:
评论
1 楼 akandfxs 2013-08-13  
不错。有机会用用。

相关推荐

    human2regex:人性化正则表达式

    比原始文本甚至颜色编码的正则表达式更容易调试 “人类说话”可能包含评论 支持多种平台的方言/怪癖 Human2Regex将最大限度地减少您的最终正则表达式 非技术质量检查人员可以使用“人类说”来验证程序的输出 网页 ...

    js正则表达式实现数字每隔四位用空格分隔代码

    这样的效果在填写银行卡的时候十分常见,这也是非常人性化的举措。 代码实例如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>软件开发网</title> [removed]...

    php-regexp-builder:人性化的正则表达式创作

    人性化的正则表达式创作 <?php /* ... */ $ invalidEndingCharacters = ( new RegExpBuilder ) -> expectAnyOf ( '.-' ) -> once (); $ namePattern = ( new RegExpBuilder ) -> assertNotPrecededBy ( $ ...

    正则表达式学习问答

    但是不幸的是,一直以来正则表达式的语法却没有太多的变化,甚至后续增加的功能,也沿袭了之前的语法风格,在编程语言日渐人性化的今天,它自然显得非常难懂了。今天的开发人员可能更习惯Regex.CharRange(‘a’, ‘z...

    Jquery 表单带密码验证,有好看的密码等级图

    Jquery+正则表达式+css样式+验证效果图,完成舒服美观人性化的表单密码验证

    易语言字符串搅乱器源码-明文打乱

    该工具源于早期,字符串搅乱器进行改造,使其更加人性化和完善。大家所开发的软件在没有使用加密前,按钮标题,程序内文本等都是明文显示的,用到它将解决这一个问题。智能模式为识别 整段语句 或 多行语句 “ 中的...

    子宫:AWS CloudWatch Logs的多组和流日志尾部

    子宫 从终端添加AWS CloudWatch Logs的“最佳方法”。 抽象 Utern允许您在AWS CloudWatch Logs上跟踪来自多个...人性化格式,即1h20m表示1小时20分钟前 完整的时间戳2019-01-02T03:04:05Z(RFC3339) 强大的内置过

    全能文件管理器Total Commander.zip

    贴心的人性化设置:可方便快捷访问地文件系统及相关资源,如工具栏、开始菜单、快捷键。 具有高度可定制性:用户可根据需要和喜好自定义菜单、工具栏、开始菜单等几乎所有资源。 支持多国语言:软件支持30多种...

    choose:一种人性化且快速的 cut 和(有时)awk 替代方案

    这是choose ,一种人性化且快速的替代方法cut和(有时) awk 特征 类似于 Python 的列表切片的简洁字段选择语法 从行尾开始负索引 可选的开始/结束索引 零索引 反向范围 对于足够长的输入,比cut略快,比awk快得多 ...

    stamp:基于人性化示例格式化日期和时间的 Scala 库

    邮票 因为生命太短暂,无法理解 : ...val pattern : String = FormatLike ( " Feb 05, 2014 " ) assert(pattern == " MMM DD, YYYY " ) 然后,您可以将模式用作: ...另请参阅: - 用于编写自文档正则表达式的库。

    JSP(swing+SQL SEVER2005)酒店管理系统

    人性化控制商品的方法;系统自动结账方法的实现;swing中鼠标和键盘的使用方法;年月日下拉列表框联动保证日期合法性的方法;通过正则表达式验证用户输入数据的合法性的方法;系统时钟的实现方法。

    Ruby迭代器的7种技巧分享

    Ruby由于吸收了Perl的正则表达式和Python的可读性,所以其中的计数取值方法,是非常人性化和灵活的,这里可以举例来说明下: 一、打印7次“hello,world”,如下: 代码如下: 7.times{puts “hello,world”} #在这里...

    易语言-易语言字符串搅乱器源码-明文打乱

    该工具源于早期,字符串搅乱器进行改造,使其更加人性化和完善。 大家所开发的软件在没有使用加密前,按钮标题,程序内文本等都是明文显示的,用到它将解决这一个问题。 智能模式为识别 整段语句 或 多行语句 “ 中...

    xctool:Apple xcodebuild的扩展,可以更轻松地测试iOS和macOS应用

    如果您要构建一个持续集成系统,则意味着您不再需要正则表达式解析xcodebuild输出。 尝试使用之一自定义输出,或使用-reporter json-stream选项获取完整的事件流。 人性化的ANSI彩色输出。 xco

    RegExp下载组织者「RegExp Download Organizer」-crx插件

    0.2.5版*修复了预定义的引荐来源网址规则0.2.4版*为目标添加了日期/时间格式化程序*为规则添加了人性化的描述*现在可以禁用规则而不是删除它们*更多的预定义规则此扩展名使您可以使用基于RegExp的灵活而强大的规则来...

    kung-fig:功夫的配置文件!

    看一下这些令人印象深刻的功能列表: 人性化的数据结构表示形式(类似于YAML,但可能会更好) 评论支持多行字符串支持,带或不带换行符折叠栏目尼斯地图和字典语法类/构造函数(日期,二进制数据,正则表达式和...

    awslogs:适用于Humans:trade_mark:的AWS CloudWatch日志

    列出现有组$ awslogs groups 列出现有流$ awslogs streams /var/log/syslog 观察创建的日志$ awslogs get /var/log/syslog ALL --watch 人性化的时间过滤: --start='23/1/2015 14:23' --start='2h ago' --start='...

    一种人性化且快速的替代方法,可用于剪切和(有时)awk-Linux开发

    剪切和(有时)awk的一种人类友好且快速的选择选择此选项,剪切和(有时)awk的一种人类友好且快速的选择具有类似于Python列表切片的简洁字段选择语法,从...比使用Rust的regex语法的awk正则表达式字段分隔符要快得多。

    QtiASL:跨平台DSDT编辑器(asl iasl)

    |QtiASL-开源跨平台DSDT&SSDT集成开发环境基本功能包括但不限于: 自动加载当前使用的SSDT列表(在Windows和Mac下) 流畅... 人性化的搜索功能,并支持简单的正则表达式搜索框支持历史记录列表并输入自动完成自动标

Global site tag (gtag.js) - Google Analytics