前言 有时候需要实现对js源文件中的url字符串做拦截预处理,或者前端js语法高亮,或者需要对动态加载的关键源码做混淆保护,在某些步骤实现之前,有一个步骤是需要提炼出所有的合法字符串. 目标:检测源文件文本中的字符串,合法的双(单)引号之间的内容与引号自身. 实现方式:正则表达式匹配. 改进:优化正则表达式,加快匹配速度与尽可能减少匹配时占用的内存空间. 基本存在情况:"",'',"\"",'\'',所有的合法字符情况都是以上四种情况的拓展 分解规则:双引…
JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test  实现的机制:通过replace的回调函数获取.  代码:  var str = "abcdefgname='test'sddfhskshjsfsjdfps";  var reg = /name='((\w|-|\s)+)/ig;  str.replace(reg, function() { …
这里我第一时间想到的就是用 js 的search 和 match ,其中最常见的是match: 1. str.search(regexp):search()方法不支持全局搜索,因为会忽略正则表达式参数的标识g,并且也忽略了regexp的lastIndex属性,总是从字符串的开始位置进行检索,所以它会总是返回str的第一个匹配的位置. var str = "Javascript"; str.search(/script/); // 返回 script 中s的位置为 4 str.searc…
在Java中使用正则表达式去匹配相应的字符串: String importFileRole = "(import)\\s*[a-zA-Z0-9_<>.]+\\;";//正则表达式Pattern p = Pattern.compile(importFileRole);//获取正则表达式中的分组,每一组小括号为一组Matcher m = p.matcher(tempString);//进行匹配if (m.find()) {//判断正则表达式是否匹配到 importFileNam…
项目中有个需求,需要从url中截取ID.需要在前台用js匹配截取,所以就百度一下,发现都没有说清楚,所以这里就总结下. 正则表达式如下: var epId=0; //工厂企业ID var urlIndex = /.*(\/gongchang\/geli)$/; //工厂 格力电器 var urlCommon = /.*\/Shop\/([0-9]*$)/;//正常店铺 店铺Shop后为店铺ID var linkAddress = "http://www.baidu.com/Shop/2541&q…
1. 元字符说明 元字符 含义 ^ 匹配输入字符串的开始位置. $ 匹配输入字符串的结尾位置. * 匹配前面的字符零次或多次. + 匹配前面的字符一次或多次. ? 匹配前面的字符零次或一次. . 匹配任何字符,除了空. | 指明两项之间的一个选择.例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串. [ ] 用于指定要在其中尝试匹配列表中任何一个字符的匹配列表. [^ ] 用于指定一个不匹配列表,要尝试匹配除列表中的字符之外的任何字符. […] 接受括号中的任一字符…
正则表达式可以快速判断所给字符串是否某种指定格式.这里将一些常用的方法封装进一个字符串工具类中. public static class StringTool { /// <summary> /// 判断字符串是否纯数字 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsNumber(…
DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多个标号组成的完整域名总共不超过255个字符. 由此匹配完整域名的正则表达式: ^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ 例如:baidu.com 匹配网址: ^(?=^.{3,255…
测试字符串: <style>v\:* {                 BEHAVIOR: url(#default#VML) } o\:* {                 BEHAVIOR: url(#default#VML) } w\:* {                 BEHAVIOR: url(#default#VML) } .shape {                 BEHAVIOR: url(#default#VML) } </style> abcdef…
获取第一个.前面的字符串,以及后面的字符串: const transform = str => { str.replace(/([^\.]*)\.(.*)/, function($0, $1,$2){ // $0是匹配的完整的字符串 console.log($1,":", $2); }); } transform("abc.def.ghi") // abc:def.ghi 或者 const transform = str => { str.replace…
re.match(r'.*-(\d*).html',url_1).group(1) \d+匹配1次或者多次数字,注意这里不要写成*,因为即便是小数,小数点之前也得有一个数字:\.?这个是匹配小数点的,可能有,也可能没有:\d*这个是匹配小数点之后的数字的,所以是0个或者多个 例如:…
项目中遇到这样的需求,后端返回的是字符串,在vue用v-html显示,里面有style样式,要去除style 在v-html中使用filters,和平时的不一样,推荐项目的方法,定义一个全局的过滤方法 Vue.prototype.removeHtmlStyle = function (html) { var rel = /style\s*?=\s*?([‘"])[\s\S]*?\1/ var newHtml = '' if (html) { newHtml = html.replace(rel,…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>邮箱匹配</title> </head> <body> 手机号:<input type="text" id="texts"><br \> 邮箱:<input type="text" i…
1.使用“\d+”匹配全数字 代码: import re zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650." m = re.findall("\d+", zen) print(m) 结果: ['] 但是上述这种方式也会引入非纯数据,例子如下: import re zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650. string666…
private static List<String> getImage(String str){ List<String> tmp=new ArrayList<String>(); String regex="<img src=\"([^\"]+?)\" />"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matc…
JS正则表达式完整教程(略长) 引言 亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣. 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准. 关于正则表达式的教程,网上也有很多,相信你也看了一些. 与之不同的是,本文的目的是希望所有认真读完的童鞋们,都有实质性的提高. 本文内容共有七章,用JavaScript语言完整地讨论了正则表达式的方方面面. 如果觉得文章某块儿没有说明白清楚,欢迎留言,能力范围之内,老姚必做详细解答. 具体章节如下: 引言 第一章 正则表…
http://www.jb51.net/article/25313.htm 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 •替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称…
source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种正则匹配算法的对比图,其中左边的是许多语言都作为标准使用的算法,而右边的算法则鲜为人知,它是多个版本的awk和grep程序所使用的算法.这两种算法有着惊人的不同表现: 注意到Perl需要大约60秒的时间来匹配长度为29的字符串,而Thompson NFA算法只需要20微秒,两者相差了上百万倍.不仅如…
转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6siDlpn_Z7ZUIiXUouxoj4gV4chPeGufQHTh22J6yfX6S Js正则表达式大全 创建一个正则表达式 第一种方法: var reg = /pattern/; 第二种方法: var reg = new  RegExp('pattern'); 正则表达式的exec方法简介 语法:…
今天做表单提交的输入框条件验证,验证是否包含中文:网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢.根据搜索结果,本文取精华,告诉大家一个好用的中文验证方法.        使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间.这样才能够了解表达式的匹配原理.                 首先在正则表达式中使用 Unicode,必须使用\u开头,接着是字符编码的四位16进制表现形式 简单匹配中文方法: /[^\u…
C#正则表达式匹配字符之含义 1.正则表达式的作用:用来描述字符串的特征. 2.各个匹配字符的含义: .   :表示除\n以外的单个字符 [ ]  :表示在字符数组[]中罗列出来的字符任意取单个 |   :表示“或”的意思 ()  :表示改变优先级或"提取组" *   :限定前面的表达式出现0次或多次 +   :限定前面的表达式出现1次或多次 ?  :限定前面的表达式出现0次或1次 ^   :表示以表达式开头(例:^http表示字符串以“http”开头) $   :表示以表达式结尾 (…
原文地址:http://houfeng0923.iteye.com/blog/1035321 今天做表单提交的输入框条件验证,验证是否包含中文:网上搜了一圈基于js正则表达式的验证基本不好用,而且大多都是出自一两篇原文的转帖!到底什么才是拿来主义呢.根据搜索结果,本文取精华,告诉大家一个好用的中文验证方法. 使用js正则表达式匹配中文,需要了解中文字符在unicode编码中所处的区间.这样才能够了解表达式的匹配原理. 首先在正则表达式中使用 Unicode,必须使用\u开头,接着是字符编码的四位…
一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从text文本中获取字符串,筛选合法IP地址 2.1 文本内容如下 请输入合法IP地址,非法IP地址和其他字符将被过滤! 增.删.改IP地址后,请保存.关闭记事本! 192.168.8.84 192.168.8.85 192.168.8.86 0.0.0.1 256.1.1.1 192.256.256.25…
原文:js 正则学习小记之匹配字符串优化篇 昨天在<js 正则学习小记之匹配字符串>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功,当然最后一个 " 会直接匹配成功. 很明显,正常的字符串不可能全是转义,正常的字符串才是主流,当然不排除有人故意全转义的情况.所以这个正则需要次回溯后才能匹配完成,如果字符串增长到 1K 1M 肿么破呢?所以我们要修改下这个正则,前后换下位置么?难道是 /&q…
正则表达式都是操作字符串的 作用:对数据进行查找.替换.有效性验证 创建正则表达式的两种方式: // 字面量方式 /js/ // 构造函数方式 regular expression new RegExp() 普通字符:字母 数字 汉字 _ 空格 ; , @ (没有特殊含义的符号) 两种匹配的方式: test 测试,找到返回true,反之为false exec 匹配字符,找到的话就返回该字符(以数组形式),反之返回null 这两个都是属于正则的方法,所以前面是跟的正则 var str="i lov…
昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功,当然最后一个 " 会直接匹配成功. 很明显,正常的字符串不可能全是转义,正常的字符串才是主流,当然不排除有人故意全转义的情况.所以这个正则需要次回溯后才能匹配完成,如果字符串增长到 1K 1M 肿么破呢?所以我们要修改下这个正则,前后换下位置么?难道是 /"(?:[^"]|\\…
本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一些常用的验证.匹配数字.匹配字符串.匹配中文.匹配任意字符串. 匹配正则 使用 .test() 方法 let testString = "My test string"; let testRegex = /string/; testRegex.test(testString); 匹配多个模…
常见正则表达式引擎引擎决定了正则表达式匹配方法及内部搜索过程,了解它至关重要的.目前主要流行引擎有:DFA,NFA两种引擎. 引擎 区别点 DFA Deterministic finite automaton 确定型有穷自动机 DFA引擎它们不要求回溯(并因此它们永远不测试相同的字符两次),所以匹配速度快!DFA引擎还可以匹配最长的可能的字符串. 不过DFA引擎只包含有限的状态,所以它不能匹配具有反向引用的模式,还不可以捕获子表达式. 代表性有:awk,egrep,flex,lex,MySQL,…
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…
引言:JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一定 JS 正则表达式基础的同学,如果对正则表达式并不了解,还需先学习基础再来观摩这门否定大法. 一.标签过滤需求 不知道大家在写JS有没有遇到过这样的情况,当你要处理一串字符串时,需要写一个正则表达式来匹配当中不是 XXX 的文本内容.听起来好像略有些奇怪,匹配不是 XXX 的内容,不是 XXX 我…