常见正则表达式引擎引擎决定了正则表达式匹配方法及内部搜索过程,了解它至关重要的.目前主要流行引擎有:DFA,NFA两种引擎. 引擎 区别点 DFA Deterministic finite automaton 确定型有穷自动机 DFA引擎它们不要求回溯(并因此它们永远不测试相同的字符两次),所以匹配速度快!DFA引擎还可以匹配最长的可能的字符串. 不过DFA引擎只包含有限的状态,所以它不能匹配具有反向引用的模式,还不可以捕获子表达式. 代表性有:awk,egrep,flex,lex,MySQL,…
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 基本格式  from django.conf.urls im…
本文主要讲解javascript 的正则表达式中的分组匹配与前瞻匹配的,需要对正则的有基本认识,本人一直对两种匹配模棱不清.所以在这里总结一下,如有不对,还望大神指点. 1.分组匹配: 1.1捕获性分组匹配 () 2.2非捕获性分组匹配 (?:)2前瞻匹配: 2.1正向前瞻匹配: (?=表达式) 后面一定要匹配有什么 2.2反向前瞻匹配: (?!表达式) 后面一定不能要有什么 1.1.捕获性分组匹配 () var str1 = "holle word 123456 can 12s a 123 a…
网上流传着多种匹配URL的正则表达式版本,但我经过试验,最好用的还是从stackoverflow上查到的: (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] IP地址.前后有汉字.带参数的,都是OK的. 另外几个有问题的版本: 摘自微软MSDN: (ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9…
java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 set d=@bb"; 我要拿出所有的以@开头的作为变量,并且去重,则如下玩: ps:其中正则匹配空格是 “\s+” public class Test { public stat…
Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := '<html><head><title>标题</title></head><body>内容</body></html>';   reg.RegEx  := '<.*>';…
java中要匹配中文的正则表达式可以有两种写法:一是使用unicode中文码:二是直接使用汉字字符: 例: (1)String str = "晴"; String regexStr = "[\u4E00-\u9FA5]"; str.regex(regexStr); (2)String str = "晴"; String regexStr = "[一-龥]"; str.regex(regexStr); 说明:(1)现在网上大多数…
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global) 一.总结 1.小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效 var reg2=/(td){2,4}/g //1.小括号作用,分组 2.var reg3=/^\d/gm //2.m多行匹配 var str2='1.第一章\n2.第二章\n3.第三章' //4.换行符 3.alert(…
1.贪婪匹配 问题:给定一个字符串表示的数字,判断该数字末尾0的个数? "123000": 3个0 "10100": 2个0 "1001": 0个0 先使用"^(\d+)(0*)$"匹配这三个字符串 public class Phone{ public static void matchForZero(String s){ Pattern pattern = Pattern.compile("(\\d+)(0*)$&…
VIM 用正则表达式 批量替换文本,多行删除,复制,移动 在VIM中 用正则表达式 批量替换文本,多行删除,复制,移动 :n1,n2 m n3     移动n1-n2行(包括n1,n2)到n3行之下: :n1,n2 co n3    复制n1-n2行(包括n1,n2)到n3行之下: :n1,n2 d        删除n1-n2行(包括n1,n2)行: vi替换使用规则: :g/s1/s/s2/s3/g 第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s…