文本:
<br /> 您好,非常好,很开心认识你
<br /> <a target =_blank href ="www.baidu.com" > 百度一下a >百度才知道
<br /> <a target =_blank href ="/view/fafa.htm" > 发发a >最佳帅哥
<br /> <a target =_blank href ="/view/lili.htm" > 丽丽a >最佳美女
<br />
方法1: 匹配,捕获(存储)
正则表达式:(?<=(href=")).{1,200}(?=(">))
解释: (?<=(href="))
表示 匹配以(href=")
开头的字符串,并且捕获(存储)到分组中 (?=(">))
表示 匹配以(">)
结尾的字符串,并且捕获(存储)到分组中
匹配结果:
方法2: 匹配,不捕获(不存储)
正则表达式:(?<=(?:href=")).{1,200}(?=(?:">))
解释:
(?<=(?:href="))
表示 匹配以(href=")
开头的字符串,并且不捕获(不存储)
到分组中 (?=(?:">))
表示 匹配以(">)
结尾的字符串,并且不捕获(不存储)
到分组中
匹配结果:
表达式
说明
(?:pattern)
非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(
(?=pattern)
非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95
(?!pattern)
非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95
(?<=pattern)
非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95
(?
非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反。例如“(?
一.概念
【分组】 我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复一个字符串又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。(\d{1,3}\.){3}\d{1,3}
是一个简单的IP
地址匹配表达式。要理解这个表达式,请按下列顺序分析它:
\d{1,3}
匹配1到3位的数字,(\d{1,3}\.}{3}
匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。
不幸的是,它也将匹配256.300.888.999
这种不可能存在的IP地址(IP地址中每个数字都不能大于255)。如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
。
理解这个表达式的关键是理解2[0-4]\d|25[0-5]|[01]?\d\d?
,这里我就不细说了,你自己应该能分析得出来它的意义。
【后向引用】 使用小括号指定一个子表达式后,匹配这个子表达式的文本可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。
后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本。难以理解?请看示例:
\b(\w+)\b\s+\1\b
可以用来匹配重复的单词,像go go, kitty kitty。首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b)
,然后是1个或几个空白符(\s+)
,最后是前面匹配的那个单词(\1)
。
你也可以自己指定子表达式的组名。要指定一个子表达式的组名,请使用这样的语法:(?\w+)
(或者把尖括号换成’也行:(?'Word'\w+)
),这样就把\w+的组名指定为Word了。要反向引用这个分组捕获的内容,你可以使用\k,所以上一个例子也可以写成这样:\b(?\w+)\b\s+\k\b
。
使用小括号的时候,还有很多特定用途的语法。下面列出了最常用的一些:
分组语法 捕获 (exp)
匹配exp,并捕获文本到自动命名的组里 (?exp)
匹配exp,并捕获文本到名称为name的组里,也可以写成(?’name’exp) (?:exp)
匹配exp,不捕获匹配的文本 位置指定 (?=exp)
匹配exp前面的位置 (?<=exp)
匹配exp后面的位置 (?!exp)
匹配后面跟的不是exp的位置 (? 匹配前面不是exp的位置
注释 (?#comment)
这种类型的组不对正则表达式的处理产生任何影响,只是为了提供让人阅读注释
我们已经讨论了前两种语法。第三个(?:exp)
不会改变正则表达式的处理方式,只是这样的组匹配的内容不会像前两种那样被捕获到某个组里面。
位置指定 接下来的四个用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们用于指定一个位置,就像\b,^,$那样,因此它们也被称为零宽断言。最好还是拿例子来说明吧:
(?=exp)
也叫零宽先行断言,它匹配文本中的某些位置,这些位置的后面能匹配给定的后缀exp
。比如\b\w+(?=ing\b)
,匹配以ing结尾的单词的前面部分(除了ing以外的部分),如果在查找I’m singing while you’re dancing.时,它会匹配sing和danc。
(?<=exp)
也叫零宽后行断言,它匹配文本中的某些位置,这些位置的前面能给定的前缀匹配exp。比如(?<=\bre)\w+\b
会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。
假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了),你可以这样查找需要在前面和里面添加逗号的部分:((?<=\d)\d{3})*\b
。请仔细分析这个表达式,它可能不像你第一眼看出来的那么简单。
下面这个例子同时使用了前缀和后缀:(?<=\s)\d+(?=\s)
匹配以空白符间隔的数字(再次强调,不包括这些空白符)。
负向位置指定 前面我们提到过怎么查找不是某个字符或不在某个字符类里的字符的方法(反义)。但是如果我们只是想要确保某个字符没有出现,但并不想去匹配它时怎么办?例如,如果我们想查找这样的单词–它里面出现了字母q,但是q后面跟的不是字母u,我们可以尝试这样:
\b\w*q[^u]\w*\b
匹配包含后面不是字母u的字母q的单词。但是如果多做测试(或者你思维足够敏锐,直接就观察出来了),你会发现,如果q出现在单词的结尾的话,像Iraq,Benq,这个表达式就会出错。这是因为[^u]总是匹配一个字符,所以如果q是单词的最后一个字符的话,后面的[^u]
将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它的什么),后面的\w*\b
将会匹配下一个单词,于是\b\w*q[^u]\w*\b
就能匹配整个Iraq fighting。负向位置指定能解决这样的问题,因为它只匹配一个位置,并不消费任何字符。现在,我们可以这样来解决这个问题:\b\w*q(?!u)\w*\b
。
零宽负向先行断言(?!exp)
,只会匹配后缀exp
不存在的位置。\d{3}(?!\d)
匹配三位数字,而且这三位数字的后面不能是数字。
同理,我们可以用(?,零宽负向后行断言来查找前缀exp
不存在的位置:(?匹配前面不是小写字母的七位数字(实验时发现错误?注意你的“区分大小写”先项是否选中)。
一个更复杂的例子:(?<=<(\w+)>).*(?=<\/\1>)
匹配不包含属性的简单HTML标签内里的内容。()
指定了这样的前缀:被尖括号括起来的单词(比如可能是
),然后是.*
(任意的字符串),最后是一个后缀(?=<\/\1>)
。注意后缀里的\/,它用到了前面提过的字符转义;\1则是一个反向引用,引用的正是捕获的第一组,前面的(\w+)
匹配的内容,这样如果前缀实际上是的话,后缀就是
了。整个表达式匹配的是
和
之间的内容(再次提醒,不包括前缀和后缀本身)。
二.实际运用
现在网络上现在很流行的爬虫程序,其实就是根据正则表达式来对网页进行解析匹配获取有用信息分组并存储下来的. 像网页上最多的就是像,,之类的标签,而相对于我们用户而言,这些都是没有任意意义的,有意义的是其中所包含的值.如网易
我所所关心的就是其href属性当中的值,还有就是其文字结点的值.其它的对于我们来说没有任何意义.这就要运用到我们所说的正确表达式匹配了. 不过如果我们只是针对取某一个标签的结点值,我们可以通过javascript+DOM方法把他们取出来,不过要是不是一类而是要求全部内空当中去取,那样用DOM动态解析的方式就显着有时不好用了. 下同说一个我运用的实例吧 我有一个页面:
<p > 11-13 <a href =/bj /11 /109 /4969873.html target =_blank > 中介 - 3400元/3居 - 紫竹桥兵器大厦附近大三居 (紫竹院) a >
<p > 11-13 <a href =/bj /11 /104 /4969872.html target =_blank > 1200元/3居 - 出租上地三居室合住(免中介费) (上地) a >
<p > 11-13 <a href =/bj /11 /114 /4969866.html target =_blank > 中介 - 2600元/2居 - 北太平庄43号院二居出租 (北太平庄) a >
<p > 11-13 <a href =/bj /11 /914 /4969865.html target =_blank > 400元/1居 - 单间独立卫浴免供暖费 (北七家) a >
<p > 11-13 <a href =/bj /11 /301 /4969864.html target =_blank > 中介 - 2400元/2居 - 东直门春秀路太平庄南里二居室出租 (东直门外三里屯工人体育馆) a >
<p > 11-13 <a href =/bj /11 /208 /4969863.html target =_blank > 中介 - 2400元/4居 - 出租定福家园新房四居室 (团结湖) a >
<p > 11-13 <a href =/bj /11 /214 /4969862.html target =_blank > 中介 - 2600元/3居 - 花家地北里三室一厅出租 (酒仙桥 将台路) a >
<p > 11-13 <a href =/bj /11 /209 /4969859.html target =_blank > 1300元/1居 - 十里堡华堂附近新公寓合租 (京广桥 红庙 八里庄) a >
<p > 11-13 <a href =/bj /11 /70 /4969846.html target =_blank > 中介 - 600元/3居 - 出租丰益桥西盛鑫家园4室2厅2卫精装修的房子(免收中介费 (丰益桥西盛鑫家园) a >
<p > 11-13 <a href =/bj /11 /901 /4969844.html target =_blank > 750元/3居 - 田园风光雅园3居中的一居室出租 (回龙观) a >
<p > 11-13 <a href =/bj /11 /1101 /4969840.html target =_blank > 350元/1居 - 找一女孩跟我合租 (亦庄) a >
<p > 11-13 <a href =/bj /11 /102 /4969839.html target =_blank > 中介 - 3400元/3居 - 出租知春里小区三居室 (北京大学) a >
<p > 11-13 <a href =/bj /11 /217 /4969838.html target =_blank > 1100元/3居 - 双井桥 三居 出租 (新装修的)合租 (双井) a >
<p > 11-13 <a href =/bj /11 /70 /4969837.html target =_blank > 中介 - 3500元/3居 - 丰台区兆丰园精装修房子一套低价出租 (玉泉路 吴家村) a >
<p > 11-13 <a href =/bj /11 /70 /4969835.html target =_blank > 中介 - 2900元/3居 - 我有一套长安新城精装修的三居室要出租 (青塔 大成路 长安新城) a >
<p > 11-13 <a href =/bj /11 /201 /4969834.html target =_blank > 中介 - 2200元/1居 - 房屋出租,北辰附近 (亚运村) a >
我现在要取出其中的链接和相应的关键描述字符,即从类似
<p > 11-13 <a href =/bj /11 /70 /4969837.html target =_blank > 中介 - 3500元/3居 - 丰台区兆丰园精装修房子一套低价出租 (玉泉路 吴家村) a >
中取出我们想要的信息, 第一就是链接地址:/bj/11/70/496837.html
; 第二就是其描述信息:中介 - 3500元/3居 - 丰台区兆丰园精装修房子一套低价出租 (玉泉路 吴家村)
现在我们来分析下我们所取字符的共同特征,简单总结一下分为以下几个部分 1.他们都是以打头,以
结尾. 2.在href
属性之后有可能还有其他的属性标签,如class
,等其它相关的属性. 方向确定我们就可以确定着手写正则式了 首先满足第一条件头就为;就是这样,很简单吧,同样,末尾为
也可以直接写 应该说现在已经可以正常匹配了,不过他匹配了一个整个的
标签,不是我们所想要的,我们只是想要其中的部分 所以还需要继续修改,因为我们要在一个标签中去取两个部分,一个链接和描述文字,其最好的方法就是把他们放在一个分组当中,待我们使用时可以直接使用,关于建立分组,前面的资料说的很清楚.为了直观,我们采用自定义分组,即(?<分组名>)
格式 一起组织起来就成了我们想要的. 即
(?<=\s+href=(? .*? (?= \starget=) ) .*?>(?.*? ) (?= )
因为时间的关系,其中分析过程略的较多,不过具体大体思路就像如上所说.只不过具体的问题具体分析.
你可能感兴趣的:(正则表达式)
jmeter获取返回json参数个数
海纳百川_9dc7
我们在用jmeter做测试的时候,返回很多json数据,然后呢想要从中取出某个参数的数量,人工取数的情况下,会很繁琐。因此必须借助正则提取器。操作如下:配置线程组:然后配置正则表达式提取器:2转载:正则表达式提取器说明再用jmeter后置BeanShellPostProcessor3importcom.eclipsesource.json.*;importjava.util.regex.Match
linux正则表达式
小黑要上天
linux RegEX linux 正则表达式 运维
linux正则表达式,又名常规表达式,是通过一些特殊字符的排列,用以搜索、替换、删除一行或多行字符串。简而言之,linux正则表达式是用在字符串处理中的“表示式”。linux正则表达式并不是工具程序,而是一个字符串处理的标准依据,如果想要以正则表达式的方式处理字符串,就要使用支持正zhen则表达式的工具程序,这类工具程序很多,如:grep、awk、sed等。linux正则表达式对于系统管理员来说很
python 正则表达式 断言_Python 之 RE(正则表达式)常用
jck?????
python 正则表达式 断言
正则表达式基础提取字符串语法说明例可匹配字符串.匹配除了换行符”\n”以外的任意字符a.bacb、adb、a2b、a~b\转义,将转义字符后面的一个字符改变成原来的意思a[b\.\\]cabc、a.c、a\c[]匹配括号内的任意字符a[b,c,d,e]fabd、acf、adf、aef预定义字符语法说明例可匹配字符串^以说明字符串开始^123123abc、123321、123zxc$以说明字符串结尾
web学习笔记(三十四)
shan33__
笔记 学习 笔记 javascript 原型模式 正则表达式
目录1.面向对象的特征2.面向对象的继承方式3.正则表达式3.1如何创建正则表达式3.2边界符3.2[]方括号3.3正则表达式中相关的方法汇总3.4常用元字符含义3.5常用量词1.面向对象的特征封装性:就像是把东西放在一个密封的盒子里一样,只让外部使用者通过指定的接口来访问盒子里的东西,而不需要知道盒子里具体是怎么实现的。这样做可以保护内部数据,让代码更容易维护和重用。继承性:就像家族中的父子关系
Kafka主题二三事
慢一点,细一点
Kafka kafka 分布式
客户端如果订阅了多次主题,则以最后一次为主,例如consumer.subscribe(Arrays.asList(topic1));consumer.subscribe(Arrays.asList(topic2));则订阅的只有topic2。消费者订阅主题是支持正则表达式,这样如果有新topic上线,并且匹配正则,则也会消费到这个新topic的内容,比如consumer.subscribe(Pat
Springboot(-) Quartz定时任务cron表达式详解
charles_lun
Java菜鸟到老鸟的蜕变之路
目录前言正文1.cron表达式组成2.子表达式范围3.子表达式格式4.字符含义5.表达式例子结束语前言在做springboot整合Quartz的时候,看到指导手册里推荐用cron表达式,然后抱着试试看的态度,额,刚一上手,感觉又回到了正则表达式的恐惧之中,乱,晕,硬着头皮看,终于看完了,有了一定的理解,赶紧整理记录下来,方便自己查看,也方便新接触的同学理解。正文1.cron表达式组成cron表达式
开发技术-Java从字符串中提取小数
JustDI-CM
Java开发 小技术 java
目录1.前提正则表达式全解析+常用示例常用正则表达式合集,这一篇就够了!!Pattern和Matcher2.实现1.前提项目上请求第三方服务,其中有个字段为字符串和小数的混合,类似:武汉0.1333;北京10.25;其它地区110.1需要将其中的小数取出。技术积累:正则表达式全解析+常用示例常用正则表达式合集,这一篇就够了!!Pattern和Matcher2.实现Stringstr="武汉0.13
正则表达式总结(校验数字,字符串及特殊需求的表达式)
polaris9z
JavaScript javascript
定义:正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。正则表达式是由普通字符(例如字符a到z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的
vim搜索和替换
ketaotech
vim vim chrome 编辑器
目录正则表达式1.特殊字符2.字符类(character-classes)3.规则4.交替和分组5.量词(quantifier)和重数(multi)贪婪模式(greedy)非贪婪模式(non-greedy)6.魔法(magic)详解6.1.基本魔法(magic)6.2.无魔法(nomagic)6.3.深度魔法(verymagic)7.正则表达式举例7.1.精确匹配单词7.2.变量,方法或类的重命名
python入门 第十一天 正则
xinmin
正则表达式普通字符:importre#完全匹配r=re.findall('xin',"wewqefrexinminwdwwrffdasw")print(r)#['xin']元字符:#.:通配符(代指一个字符)r=re.findall('xin.i',"wewqefrexinminwdwwrffdasw")print(r)#['xinmi']#^:匹配开头r=re.findall('^xin',"x
第二十二 查询、检索、搜索
smallswan
Rust七十二变 开发语言
查询在计算机中十分广泛的应用。在字符串或者文本文件中查询关键字,模式匹配,正则表达式。在数组、树、哈希表等数据结构中查询指定数据在数据库中查询在海量非结构文件中查询搜索引擎模式匹配模式匹配是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配。模式匹配经典问题:strStr()DFA算法usestd::collections::BTreeSet
双非二本找实习前的准备day5
广州悠扬
leetcode java 数据结构 算法 职场和发展
学习目标:每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),今天的八股背少一点,MySQL和Redis各1-2道好了,主攻复习是java基础今日碎碎念:1)今天刷SQL以及复习Java基础,就不写算法了,另外就是复习之前的八股力扣刷题SQL力扣1873:1873.计算特殊奖金解答思路:1)本题练习的主要是如何使用正则表达式以及在查询中使用If,当然,也可以
正则中的\d与\D、\w与\W、\s与\S各代表什么意思
A 风
javascript es6
正则中的\d与\D、\w与\W、\s与\S各代表什么意思\D:表示非数字\w:表示一个字[0-9a-zA-Z_]\W:表示除[0-9a-zA-Z_]之外的字符\s:表示一个空白字符(空格,tab,换页符等)\S:表示一个非空白字符这些都是正则中能够表示一类字符的原子/*$以什么结尾*//*下面的正则表达式匹配0-9的数字里面不能是字符串只能是数字必须是1-5位*/constad=/^[0-9]{1
前端(十八)
要你何用杀了算了
1.正则正则//校验QQ/*//JS的方式比较麻烦functioncheckQQ(qq){varflag=true;//默认符合要求if(qq.length>=5&&qq.length2.正则表达式正则表达式//匹配字母a,i表示忽略大小写,g表示全文检索varre=newRegExp('a','ig');varre2=/a/ig;varstr='abc';//调用test方法进行匹配,匹配成功返
hyperscan库接口的使用
飞翔公园11223
数据库 oracle mysql c++
Hyperscan库的使用主要涉及到几个关键步骤:编译正则表达式、创建数据库、执行匹配操作以及处理匹配结果。下面我将详细介绍这些步骤中涉及的主要接口和它们的使用方法。1.编译正则表达式在使用Hyperscan进行匹配之前,首先需要将正则表达式编译成Hyperscan能够理解的格式。这一步骤通过hs_compile或hs_compile_multi函数完成。hs_compilehs_error_th
爬虫技术抓取网站数据
Bearjumpingcandy
爬虫
爬虫技术是一种自动化获取网站数据的技术,它可以模拟人类浏览器的行为,访问网页并提取所需的信息。以下是爬虫技术抓取网站数据的一般步骤:发起HTTP请求:爬虫首先会发送HTTP请求到目标网站,获取网页的内容。解析HTML:获取到网页内容后,爬虫会使用HTML解析器解析HTML文档,提取出需要的数据。数据提取:通过使用XPath、CSS选择器或正则表达式等工具,爬虫可以从HTML文档中提取出所需的数据,
Python中re模块的使用
拉钩掉头
python 开发语言
在Python中,处理正则表达式的模块是re模块。通过re模块,可以使用正则表达式来进行字符串的匹配、查找、替换等操作。执行效率特别高,可读性不强。1.方法match从头开始匹配返回Match或者Noneimportrer=re.match(".\w{10}","Hello_worldhiworld",re.I)print(type(r),r)ifr:print(r.group())search匹
【MySQL】查询varchar类型字段的内容不包含数字内容
忆白笙
MySQL mysql 数据库
问题描述某些情况下需要查询varchar类型字段的内容为特殊内容时SQL语句主要是通过NOTREGEXP和正则表达式来实现,也可以调整正则表达式满足不同效果SELECT*FROMyour_tableWHEREyour_columnNOTREGEXP'^[0-9]+$';
oracle使用正则表达式REGEXP_SUBSTR提取XML里面的内容
qq_39255840
oracle 正则表达式 xml
使用extract(XMLTYPE(XML),‘xphat’).getstringval()提取XML,长度过长存在报错ORA-06502:PL/SQL:数字或值错误:characterstringbuffertoosmallORA-06512:在“SYS.XMLTYPE”,line169并且存在速度较慢等问题。正则提取XML,由于这边的XML文本中Name标签,接着的标签即为Value的值,故这
余弦相似度算法和IntelliScraper
python人工智能
场景当时,我说要开发一个HSipder,开发完毕的时候,我发现不太智能,通过正则表达式拿过来的相似数据实际上也不太ok,但是后面我在接触机器学习的时候听闻了余弦相似度算法,当时用他爬了一些网页,结果是很ok的,于是我把HSipder项目拆了拆加入了余弦算法,我发现准确度上去了一个维度。很Nice,随机我将其发布到pypi库,并且开源,命名为IntelliScraper,意思是智能爬,也有人工智能的
C#知识点-17(正则表达式)
土豆下土
前端
正则表达式概念:正则表达式是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现元字符:1、.:匹配除\n之外的任何单个字符。例如正则表达式“b.g”能匹配如下字符串:“big”、“bug”、“bg”,但是不匹配“buug”,“b..g”可以匹配“buug”。2、[]:字符组,匹配括号中的任何一个字符(范围,字符集合)。例如正则表达式“b[aui]g”匹配bug、big和bag,但是不匹
ES6 - Day4 - 正则表达式
今天会下雨吗
es6 字符串 正则表达式 js javascript
目标能够说出正则表达式的作用能够写出简单的正则表达式能够使用正则表达式对表单进行验证能够使用正则表达式替换内容1正则表达式概述1.1什么是正则表达式正则表达式(RegularExpression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入
Kotlin基础——DSL
松仔log
# Kotlin基础 kotlin 开发语言 android
DSL(领域特定语言)常见的DSL就是SQL和正则表达式,用于操作数据库和文本字符串,KotlinDSL通常为嵌套的Lambda表达式或链式方法,如https://github.com/gradle/gradle-script-kotlin用于构建Gradle脚本https://github.com/JetBrains/Exposed用于操作数据库https://github.com/Kotlin
Python笔记五之正则表达式
后端python正则表达式
本文首发于公众号:Hunter后端原文链接:Python笔记五之正则表达式这一篇笔记介绍在Python里使用正则表达式。正则表达式,RegularExpression,可用于在一个目标字符串里对于指定模式的字符进行查找、替换、分割等操作。比如,判断某个字符串里是否都是数字,或者是否包含指定字符串,又或者更直接的例子是判断电话号码或者邮箱是否合法等。这一篇笔记里,我们将先介绍一个正则表达式的函数,并
利用正则表达式判断字符串是否只有小写字母或数字。
qq_59812342
Python 正则表达式 python
importres=input()list=re.findall(r'[0-9a-z]',s)iflen(list)==len(s):print('Y')else:print('N')
Java Pattern正则匹配,并获取匹配内容
@航空母舰
java 开发语言
java.util.regex包主要包括以下三个类:Pattern类:pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。Matcher类:Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matche
c# 目录文件夹去掉中文
李建军
C#
核心思想如下Regexreg=newRegex(@"[\u4e00-\u9fa5]");//正则表达式可以用来判断字符串中是否包含中文str=reg.Replace(str,"");//将中文字符替换成空字段destFolderPath=fsinfo.FullName.Replace(fsinfo.Name,"")+str;//获取上级目录+新文件名if(Regex.IsMatch(fsinfo.
reDOS攻击
补天阁
android ReDos攻击 web安全 正则表达式
正则表达式回溯:当涉及到正则表达式的回溯时,让我们来看一个具体的例子。考虑以下正则表达式模式a+b,其中a+表示匹配一个或多个连续的字符"a",b表示匹配字符"b"。现在,假设有一个输入字符串为"aaab",我们试图将这个字符串与模式进行匹配。以下是回溯的过程:引擎开始尝试匹配a+,它找到了第一个"a"。然后引擎尝试匹配更多的"a",发现了两个额外的"a"。此时,引擎已经匹配了三个"a",接下来它
飞浆:零代码创建Prompt应用实战课程笔记【持续更新中】
AI一天,人间一年
prompt 笔记
飞浆:零代码创建Prompt应用实战课Prompt基本定义驱动大模型进行表达的文本描述例1:画一幅画,呆萌的小猫躺在大泡泡中,可爱温柔,动漫风格,暖系色调,居中,面对镜头,虚拟引擎,棉花糖质感,光线追踪,机制细节,质感细腻,8K,超高清,超广角,极致清晰,丁达尔效应例2:请生成一张统计图,内容为:橘子10个,苹果20个,梨15个,猕猴桃10个例3:帮我撰写一个验证邮箱的正则表达式Prompt入门公
[转载] Python_正则表达式匹配Word文档
ey_snail
参考链接:Python中的正则表达式2(搜索,匹配和查找全部)使用正则表达式匹配Word文档中的所有字符1、原文内容如下:2、期望得到的结果:3、源码://fromdocximportDocumentimportrepattern=re.compile("\d{6}[\u4e00-\u9fff]+")#正则表达式#pattern=re.compile("\d{6}[^A-Za-z0-9\!\%\[
java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
Java异常那些不得不说的事
白糖_
java exception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
JAVA Annotation之定义篇
周凡杨
java 注解 annotation 入门 注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linux capistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
log4j的用法
Harry642
java log4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oracle jave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
Hessian 简单例子
antlove
java Web service hessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
数据库对象的同义词和序列
百合不是茶
sql 序列 同义词 ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
使用Powermock和mockito测试静态方法
bijian1013
持续集成 单元测试 mockito Powermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle 数据库 plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
jquery-validation备忘
白糖_
jquery css F# Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java 多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
[军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
Hadoop如何实现关联计算
datamachine
mapreduce hadoop 关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格 js去掉所有空格 js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架 UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
JQuery EasyUI 验证扩展
可怜的猫
jquery easyui 验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
Jquery性能优化
r361251
JavaScript jquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
在eclipse项目中使用maven管理依赖
tjj006
eclipse maven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l