.*?<\/td>/;
console.log(pattern.exec(str));
正则表达式的() [] {} 有着不同的意思
() 是为了提取匹配字符串的,表达式中有几个()就有几个相应的匹配字符串
(abc)? 表示这一组要么一起出现,要么不出现,出现那则按顺序出现。
(?:abc)表示找到一样abc的一组,但是不记录,不保存到变量中,否则可以通过" role="presentation" style="overflow-wrap: normal; max-width: none; max-height: none; min-width: 0px; min-height: 0px; float: none;" id="MathJax-Element-1-Frame">变量中,否则可以通过变量中,否则可以通过x取第几个括号所匹配到的项。比如(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1获取(aaa)匹配到的内容,而" role="presentation" style="overflow-wrap: normal; max-width: none; max-height: none; min-width: 0px; min-height: 0px; float: none;" id="MathJax-Element-2-Frame">1获取(aaa)匹配到的内容,而1获取(aaa)匹配到的内容,而3则获取到了(ccc)匹配到的内容,而$4则获取的是由(eee)。
a(?=bbb)顺序环视 表示a后面必须紧跟3个连续的b
(\s*)表示连续空格的字符串
[] 是定义匹配的字符范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\s*表示空格或者*号]
{}一般是用来匹配的长度。比如\s{3}表示匹配三个空格,\s[1,3]表示匹配1到3个空格
(0-9)匹配'0-9'本身。[0-9]*匹配数字(注意后面有*,可以为空)[0-9]+匹配数字(注意后面有+,不可以为空),
{0-9}写法是错误的
[0-9]{0,9}表示长度为0到9的数字字符串。
\1 = ab
var str = '这是一段文字
';
var pattern = /<([a-zA-Z]+)>(.*?)<\/\1>/;
console.log(pattern.exec(str));
指定匹配位置
^开始 $结尾
匹配全是数字,方法一:
var str = '110119120';
var pattern = /^\d+$/;
console.log(pattern.exec(str));
if (pattern.test(str)) {
console.log( '全是数字!');
} else {
console.log( '不全是数字!');
}
匹配全是数字,方法二:
var str = '11011a9120';
var pattern = /\D/;
console.log(pattern.exec(str));
if (pattern.test(str)) {
console.log( '不全是数字!');
} else {
console.log( '全是数字!');
}
\b = 单词边界
var str = '@@@js@@@';
var pattern = /\bjs\b/; // @也被识别为单词边界
console.log(pattern.exec(str));
通过类名获取元素
function getByClassName(className, parentNode) {
if (document.getElementsByClassName) {
return document.getElementsByClassName(className);
} else {
parentNode = parentNode || document;
var nodeList = [];
var allNodes = parentNode.getElementsByTagName('*');
// 正则匹配某个类名
var pattern = new RegExp('\\b' + className + '\\b');
for (var i = 0; i < allNodes.length; i++) {
if (pattern.test(allNodes[i].className)) {
nodeList.push(allNodes[i]);
}
}
// 返回所有匹配到的元素集合
return nodeList;
}
}
\b和\s有什么区别
\babc\b匹配的是"abc" \sabc\s匹配的不是"abc", 前后还带空格" abc " \b只是匹配字符串开头结尾及空格回车等的位置, 不会匹配空格符本身
如果后面紧跟script,则匹配java
var str = 'javascript';
var pattern = /java(?=script)/;
console.log(pattern.exec(str));
正则表达式 - (?!), (?:), (?=)的区别
(?:pattern) 非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。
(?=pattern) 非获取匹配,正向肯定预查。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。
(?!pattern) 非获取匹配,正向否定预查,例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern) 非获取匹配,反向肯定预查。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?
RegExp对象
RegExp实例方法
var pattern = /js/;
var pattern = new RegExp('js');
获取所有的匹配
var str = '1.js 2.js 3.js';
var pattern = /js/g;
var total = 0,
match = '',
result;
while ((result = pattern.exec(str)) != null ) {
total ++;
match += '第' + total + '个匹配到的是:' + result[0] + ', 它的位置是:' + result.index + '\n';
}
match += '共找到' + total + '处匹配\n';
console.log(str);
console.log(match);
valueOf:返回一个 Number 对象的基本数字值。
toString():把数字转换为字符串,使用指定的基数。
toLocalString():把数字转换为字符串,使用本地数字格式顺序
var pattern = new RegExp('a\\nb')
console.log(pattern.toString()); // a\nb
console.log(pattern.toLocaleString());// a\nb
console.log(pattern.valueOf() === pattern); // a\nb
RegExp实例属性
ignoreCase:是一个只读的布尔值,看这个正则表达式是否带有修饰符i
multiline:是一个只读的布尔值,看这个正则表达式是否带有修饰符m
source:是一个只读的字符串,包含正则表达式的文本
lastIndex:是一个可读/写的整数,如果匹配模式中带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec( ) 和 test( ) 方法用到
var str = 'js js js';
var pattern = new RegExp('js', 'ig');
console.log(pattern.ignoreCase); // true
console.log(pattern.global); // true
console.log(pattern.multiline); // false
console.log(pattern.source); // js
console.log(pattern.exec(str));
console.log(pattern.lastIndex); // 0
console.log(pattern.exec(str));
console.log(pattern.lastIndex); // 3
RegExp 构造函数属性列表
exec( )接受一个参数时(即要应用模式的字符串),返回包含第一个匹配项信息的数组
包含两个额外的属性
index:表示匹配文本的第一个字符的位置
input:表示存放的为被检索 的字符串string
lastIndex属性,返回匹配内容的最后一个索引位置,也就是下一个匹配的开始位置,注意字符串索引从0开始
lastMatch($&)属性,只读属性,如果没有匹配信息,则该属性的值为空字符串
lastParen属性 只读静态属性,该属性返回在最近一次匹配检测中所得到的最后一个子匹配的值,如果没有子匹配则返回空字符串
leftContext属性 返回匹配内容左侧的字符信息 该属性的初始值为空字符串 ,如果有相应的匹配该属性的值就会改变
var str = 'js js js';
var pattern = /(j)s/;
pattern.exec(str);
console.log(RegExp.input); // js js js
console.log(RegExp.$_); // = input
console.log(RegExp['$_']); // = input
console.log(RegExp.lastMatch); // js
console.log(RegExp['$&']); // = lastMatch
console.log(RegExp.leftContext);
console.log(RegExp[ '$`']); // = leftContext
console.log(RegExp.rightContext);
console.log(RegExp[ "$'"]); // = rightContext
console.log(RegExp.lastParen);
console.log(RegExp[ "$+"]); // = lastParen
String对象中与正则表达式相关的方法
search()
var str = 'html js js';
var pattern = /js/g;
console.log(str.search(pattern)); // 5
match()
var str = 'js1\njs2\njs3';
var pattern = /^js/mg;
console.log(str);
console.log(str.match(pattern));
split()
var str = 'html , css , js';
var pattern = /\s*,\s*/; // 包括,左右出现空格也能匹配到
console.log(str.split(pattern));
replace()
var str = 'I love js';
var pattern = /(js)/;
document.write(str.replace(pattern, '$1 '));\
用*屏蔽相关文字
var str = '中国军队和阿扁一起办证';
var pattern = /国军|阿扁|办证/g;
console.log(str.replace(pattern, '*'));
几个文字对应几个*
var str = '中国军队和阿扁一起办证';
var pattern = /国军|阿扁|办证/g;
console.log(str.replace(pattern, function ($0) {
var result = '';
for (var i = 0; i < $0.length; i++) {
result += '*';
}
return result;
}));
常用的正则表达式
1.QQ
全是数字
首位不能为0
最少5位(10000)
目前最多11位?
/^[1-9]\d{4,10}$/
/^[1-9]\d{4,}$/
2.昵称
中、英文、数字以及下划线
2-18位
/^[\u4e00-\u9fa5a-zA-Z0-9_]{2,18}$/
/^[\u4e00-\u9fa5\w]{2,18}$/
3.密码
6-16位
不能用空白字符\s
/^\S{6,16}$/
/^[\w~!@#$%^\[\]]{6,16}$/
4.去除字符串首尾的空白字符
var str = ' Alex ';
var pattern = /^\s+|\s+$/g;
console.log(str.replace(pattern, ''));
函数封装
function trim(str) {
return str.replace(/^\s+/, '').replace(/\s+$/, '');
}
var str = ' Alex ';
console.log( '|' + trim(str) + '|');
5.-转驼峰
var str = 'background-color';
var pattern = /-([a-z])/gi;
console.log(str.replace(pattern, function (all, letter) {
return letter.toUpperCase();
}));
函数封装
function toCamelCase(str) {
return str.replace(pattern, function (all, letter) {
return letter.toUpperCase();
})
}
6.匹配HTML标签
var str = '123
';
var pattern = /<[^>]+>/g;// <>中间没有再出现>
console.log(str.match(pattern));
7.邮箱
[email protected]
[email protected]
alex_1.a-sdasd.asdasdas.com@yah-o_o.com.adasdsd.cn
/(?:\w+\.)*\w+@(?:\w+\.)+[a-z]/i
/^[a-z0-9]+(?:[._-][a-z0-9]+)*@[a-z0-9]+(?:[._-][a-z0-9]+)*\.[a-z]{2,4}$/i
8.URL
(协议:\/\/)主机名(:端口号)(/路径)
ftp|http|https|mailto|file:///
/^(https?:\/\/)?([^:\/]+)(:\d+)?(\/.*)?$/
9、匹配主机名
/[^:\/]+/
-www.-imos-oc.casfasf.sadasd.com
/[a-z0-9]|[a-z0-9][-a-z0-9]*[a-z0-9]/i
/^([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)*(com|edu|gov|net|org|[a-z]{2})$/i
/^([a-z0-9]\.|[a-z0-9][-a-z0-9]*[a-z0-9]\.)*([a-z]+)$/i
10、匹配所有字符
/[\w\W]/ 或
/[\d\D]/ 或
/[\s\S]/ 或
/[^]/
11、分别写出匹配正整数、负整数以及既能匹配正整数,也能匹配负整数的正则表达式
提示:1.注意0是整数,不是正整数,也不是负整数
正整数: /[1-9]\d*/
负整数: /-[1-9]\d*/
正整数和负整数: /-?[1-9]\d*/
整数: /0|-?[1-9]\d*/
12、?禁止贪婪模式,请匹配第一个[]以及它里面的内容
var str = 'js[javascript];html[hyper text markup language];css[cascading style sheet];';
var pattern = /\[.*?\]/;
console.log(pattern.exec(str));
13、html标签的属性值既可以放在""中,也可以放在''中,例如
写出既能匹配""中内容,又能够匹配''中内容的正则表达式
14、现有字符串'Windows98, WindowsXP, Windows7',请分别写出匹配后面是XP的Windows和后面不是7的Windows的两个正则表达式
提示:1.前瞻性匹配和负向前瞻性匹配
/Windows(?=XP)/
/Windows(?!7)/
15、RegExp对象
匹配字符串'weekend,endfor,end'中所有的end,并分别打印出其中的字母e
提示:1.全局匹配 2.exec循环打印
()包起来的会被存储到结果中
var str = 'weekend,endfor,end';
var pattern =/(e)nd/g;
var result;
while ((result = pattern.exec(str)) != null ) {
console.log(result[ 1]);
}
String对象与正则表达式相关的方法
16、找出字符串'110报警120急救119火警114查询'中的所有数字,并打印出来
提示:1.全局匹配 2.match
var str = '110报警120急救119火警114查询';
var pattern =/\d+/g;
console.log(str.match(pattern));
17、找出字符串'asdfgaaaafdgdgaaaadgsxcvcxva'中出现次数最多的字符,并打印出其出现的次数
提示:1.利用数组排序 2.利用引用匹配相同的字符
var str = 'asdfgaaaafdgdgaaaadgsxcvcxva';
var arr = str.split(''); // 转换成数组
str = arr.sort().join(''); // 排序之后再拼成字符串,此时相同的字符紧挨在了一起
var value = ''; // 出现次数最多的字符
var count = 0; // 出现次数
var pattern =/(\w)\1+/g; // 匹配紧挨着的相同字符
str.replace(pattern, function ($0, $1) {
// $0表示匹配到的所有相同字符,$1表示第一个分组匹配的字符,也就是单个字符
if (count < $0.length) {
// 如果$0.length>count,就表示此时匹配到的字符,到目前为止是出现次数最多的
count = $0.length;
value = $1;
}
});
console.log( '出现次数最多的字符是:'+value+',共出现'+count + '次');
你可能感兴趣的:(正则表达式)
Shell 编程之正则表达式与文本处理器
目录一:正则表达式二:基础正则表达式1.基础正则表达式示例(1)查找特定字符(2)利用中括号“[]”来查找集合字符(3)查找行首“^”与行尾字符“$”(4)查找任意一个字符“.”与重复字符“*”(5)查找连续字符范围“{}”2.元字符总结3.扩展正则表达式二:文本处理器1.sed工具(1)输出符合条件的文本(p表示正常输出)(2)删除符合条件的文本(d)(3)替换符合条件的文本(4)迁移符合条件的
Python编程核心技能提升指南:从第2版到第3版
月末刀戈
本文还有配套的精品资源,点击获取简介:《Python核心编程中文版》详细介绍了Python的基础和高级编程主题,适合不同层次的学习者。覆盖了正则表达式的使用、网络编程基础、互联网客户端协议应用、多线程编程技巧,以及GUI编程等核心模块。本书通过丰富的实例和详细的解析,帮助读者掌握文本处理、网络通信、并发任务处理和桌面应用开发的关键技能,为深入学习和专业实践提供全面支持。1.Python编程基础1.
[特殊字符] 解释器模式:自定义语言的解析专家,让复杂语法变简单!
真实的菜
java 解释器模式 python 开发语言
解释器模式:自定义语言的解析专家,让复杂语法变简单!文章目录解释器模式:自定义语言的解析专家,让复杂语法变简单!一、为什么需要解释器模式️二、解释器模式的结构2.1UML类图2.2代码实现三、解释器模式的实际应用3.1正则表达式引擎:解释器模式的典型应用3.2SQL解析器:解释器模式的实际应用四、解释器模式在Java标准库中的应用4.1Java的正则表达式4.2Java的格式化4.3Java的表达
正则表达式*用法详解
小米人儿
我的博客 正则表达式
在使用ripgrep(或任何支持正则表达式的工具)时,*符号本身不能直接单独使用,因为它是一个量词,必须放在某个字符、字符组或子表达式之后,表示“重复前一个元素零次或多次”。以下是详细解释:1.*的正确用法a*:表示匹配字符"a"零次或多次(如:"","a","aa",…)。.*:表示匹配任意字符(.)零次或多次(即匹配任意长度的字符串,包括空字符串)。2.为什么不能直接用*?如果直接写*(没有前
Unity 事件中心管理工具 并 一键跳转 注册/触发代码行
哈基咩咩
Unity 框架学习 unity 游戏引擎 c#
本人能力有限,如有不足还请斧正目录一.设计思路:工具源码二.修改思路匹配关键字修改匹配程序集修改配套事件中心源码初版演示:unity事件中心日志小工具讲解,再也不怕乱用事件中心了_哔哩哔哩_bilibili跳转功能演示视频:Unity事件中心管理小工具支持点击跳转脚本嘻嘻_哔哩哔哩_bilibili一.设计思路:1.通过过滤指定程序集和并使用正则表达式匹配事件中心的订阅和触发的关键字2.将匹配到的
数据结构与算法--Python栈 栈实现综合计算器和逆波兰计算器 前缀表达式 中缀表达式 后缀表达式 逆波兰表达式
storyfull
数据结构与算法 算法 python 栈 逆波兰表达式 逆波兰计算器
阅读目录栈实现综合计算器思路及Python实现思路Python实现模拟逆波兰计算器思路及Python实现思路Python实现正则表达式实现计算器栈实现综合计算器思路及Python实现思路先建立一个“数栈”用来压入数字,还有一个“符号栈”用来压入运算符,规定:减法从栈底向栈顶方法运算,乘除法优先级高于加减法具体操作过程:以“3+26-2”为例(1)数栈和符号栈皆为空,指针从左向右扫描表达式,数栈入栈
PHP基础3(错误处理,正则表达式,反序列化,操作mysql,cookie和session)
往日情怀酿作酒yx
php基础 php 开发语言
一.前言前面说了函数和流程控制那些,今天来说一些进阶一点的,错误处理之类的,上一节内容特别多,本章节内容将会少很多。二.PHP的错误处理很多时候,代码如果写的不太好,那么很容易报错。那么如果遇到了错误,我们应该想办法捕获到这个错误并记录下来,而且最好不要用户看到,不然太尴尬了,而且容易暴漏自己服务端的一些敏感信息,方便我们后续修改,并且尽量不要让整个程序因为一点小错误而崩溃。2.1配置项管理在ph
python xpath语法-Python Xpath语法
weixin_37988176
一、python数据提取xpath1.beautifulsoupxpath正则表达式2.xpath是一种在XML和HTML文档中查找信息的语言,可用来在XML和HTML中对元素进行遍历ChromeXPathHelper3.XPath语法(1)选取节点:使用路径表达式来选取文档中的节点nodename选取节点的所有子节点//div/如果是在最前面,代表从根节点选取,否则选择某节点下的某个节点一个/代
Python爬虫常用正则表达式分类与示例
Python爬虫常用正则表达式分类与示例一、基础匹配规则电话号码\b\d{3}-\d{8}\b或\b\d{4}-\d{7}\b示例:匹配010-86432100等格式。importretext="Phone:010-86432100,021-1234567"phones=re.findall(r'\b\d{3}-\d{8}\b|\b\d{4}-\d{7}\b',text)#结果:['010-864
javascript正则表达式大括号、中括号、小括号的作用以及应用场景
知福致福
前端学习笔记 正则表达式 javascript 开发语言
在JavaScript正则表达式中,大括号{}、中括号[]和小括号()都有不同的作用和应用场景。大括号{}在正则表达式中,大括号{}表示重复次数。以下是一些常见的应用场景:{n}:精确匹配出现的次数,例如\d{3}匹配三个连续的数字。{n,}:至少匹配n次,例如\d{4,}匹配至少四个连续的数字。{n,m}:匹配n到m次,例如\w{2,4}匹配出现两到四次字母、数字或下划线。中括号[]在正则表达式
linux,1.正则表达式, 2.sed工具, 3.awk
skyQAQLinux
正则表达式 linux 云计算 服务器
一.正则表达式1.egrep过滤工具(输出匹配行):筛选出文本中指定条件的行(1)以行为单位,逐行进行处理,默认只"输出"与表达式相匹配的"文本行"egrep:扩展正则grep:基本正则(2)语法格式1,文件(单引号)egrep[选项]'正则'文件格式2,命令命令|egrep[选项]'正则'(3)[选项]:(1)-i:忽略大小写(2)-v:去反(3)-c:统计匹配的行数(4)-q:无任何输出,一般
正则表达式中?的用法
张太行_
正则表达式 linux
在正则表达式中,?是一个量词(Quantifier),表示前面的元素匹配0次或1次(即“可选”)。以下是具体用法和示例:1.基本用法:匹配可选字符语法:X?表示X可以出现0次或1次。示例:正则colou?r:匹配"color"(u出现0次)匹配"colour"(u出现1次)。2.与其他符号结合分组可选:(abc)?匹配整个"abc"0次或1次(如""或"abc")。字符类可选:[ae]?匹配"a"
python常用的正则表达式及作用
Python常用正则表达式及作用正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持:基本匹配模式匹配数字\d:匹配任意数字,等价于[0-9]\D:匹配任意非数字,等价于[^0-9]示例:r'\d+'匹配一个或多个连续数字匹配字母和数字\w:匹配字母、数字或下划线,等价于[a-zA-Z0-9_]\W:匹配非字母、数字、下划线,等价于[^a-zA-Z0-9_]匹配空白字符\s
Python 爬虫实践-抓取小说
迷路啦
Python Python 爬虫 小说
网络爬虫(WebSpider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。爬虫流程:1,先由urllib的request打开Url得到网页html文档2,浏览器打开网页源代码分析元素节点3,通过BeautifulSoup或正则表达式提取想要的数据4,存储数据到本地磁盘或数据库(抓取,分析,存储)下面以爬取笔趣网里面的小说为例:整个逻辑我这里倒着来讲述;下图是一篇小说
JavaScript 手机号验证与倒计时功能实现
荷兰小香猪_01
javascript 开发语言 ecmascript
在现代Web应用中,手机号验证和验证码发送是常见的功能需求。本文将结合一个完整的示例,详细解析如何使用JavaScript实现这一功能,并深入探讨其中涉及的关键知识点。目录一、基本功能概述二、核心知识点解析1.正则表达式验证2.DOM操作3.定时器的使用4.变量作用域与闭包三、常见问题与解决方案1.倒计时无限循环问题2.多次点击导致多个定时器问题3.页面刷新后倒计时重置问题一、基本功能概述以及完整
《精通正则表达式》精华摘要
yuanyxh
正则表达式 前端 javascript
《精通正则表达式》的摘要,偏向JavaScript中的正则引擎去理解。元字符具有特殊含义的字符,表示某个规则,而不是其原来普通文本的含义。比如:.表示除换行符外的任意字符。\d表示数字(对于某些引擎来说,可能匹配除阿拉伯数字0-9外的其他数字)特殊元字符\s通常表示的是空格、制表符、换行符、回车符,部分实现可能还视为Unicode空白字符,而不仅仅是空格\p{category}表示匹配一个Unic
【正则表达式】正则表达式介绍
晴雨日记
Qt基础 C++ 笔记 正则表达式 c++
文章目录正则表达式应用在编程语言的应用表单验证文档中替换、查找符号说明元字符运算符优先级修饰符常用正则表达式引用文档正则表达式正则表达式(RegularExpression)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式。正则表达式是一种用于模式匹配和搜索文本的工具。正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取
ToolsSet之:正则表达式测试
BinField
ToolsSet Windows应用 windows microsoft
ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用,应用基本功能介绍可以查看以下文章:Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264ToolsSet中Text菜单下的RegexTest工具是一个简单的正则表达式测试工具,可以查看常用的正则表达式,也可以对正则表达式进
【Python】正则表达式中的`^`和`[]`
shengchao0920
python 正则表达式 数据库
一、正则表达式:符号^^在正则表达式中有两种常见的含义,具体取决于它的位置:1.在字符集[]的开头时,表示取反(negation)。例如:[^s]:匹配任何非空白字符。[^a-z]:匹配任何不在a-z范围内的字符。2.在字符集之外时,表示字符串的开始(anchor)。例如:^https:匹配以“https”开头的字符串。^\d:匹配以数字开头的字符串。总结:在[]内:取反。在[]外:字符串开始。需
【Python】Python办公自动化需要你了解什么?会什么?
目录专栏导读背景介绍1.核心语法基础2.常用内置模块二、办公自动化专用库1.文件处理三剑客2.Excel自动化3.Word文档处理4.PDF处理5.邮件自动化三、进阶技能要求1.正则表达式2.数据处理与分析3.定时任务调度4.GUI自动化四、典型办公自动化场景1.批量文件处理2.报表自动化3.邮件自动化4.数据采集与处理五、学习路径建议六、实用建议结尾专栏导读欢迎来到Python办公自动化专栏—P
Vue3 表单
AI老李
vue3 vue.js 前端 javascript vite vscode
关键要点Vue3表单通过v-model实现双向数据绑定,支持输入框、文本域和下拉菜单。表单验证包括必填字段、正则表达式和自定义方法,确保数据完整性。表单处理涉及数据获取和重置,适合用户交互和提交。表单绑定Vue3使用v-model指令将表单元素与数据绑定。例如:组件数据:data(){return{message:''}}v-model自动同步输入和数据,支持复选框、单选框和下拉菜单。表单验证验证
Qt编程: 正则表达式分析
倔强老吕
QT开发 qt 正则表达式
Qt提供了两种正则表达式实现:QRegExp(Qt4-5)和QRegularExpression(Qt5+推荐)。本文将重点介绍Qt5推荐的QRegularExpression类及其完整用法。QRegularExpression基础1.1基本使用#include//构造正则表达式QRegularExpressionre("apattern");//检查是否有效if(!re.isValid()){q
DataWhale-零基础络网爬虫技术(二er数据的解析与提取)
我怎么又饿了呀
Python Datawhale 爬虫 算法
课程链接先给各位↓↓↓(点击即可食用.QAQDatawhale-学用AI,从此开始一、数据的解析与提取数据提取的几种方式:re解析bs4解析xpath解析1.1正则表达式(ReuglarExperssion)RE是一种用于字符串匹配的规则描述方式。它通过特定的组合字符来定义字符串的模式,从而实现对字符串的搜索、匹配、替换等操作。Python也支持同样re的用法,需要引入模块importre。使用场
jquery获取本机内网IP
ipipv4
在jquery中获取本机内网IP地址可以通过WebRTCAPI来收集本地候选IP地址,并通过正则表达式筛选出内网IP一:实现思路WebRTC获取IP:通过创建RTCPeerConnection实例,浏览器会自动收集本地网络接口的IP地址作为ICE候选。筛选内网IP:从收集到的候选IP中过滤出符合IP地址二:浏览器支持需在支持WebRTC的现代浏览器(如Chrome、Firefox)中运行三:代码实
JS replace()方法替换变量(可以对变量进行全文替换)
weixin_43445771
前端 JavaScript
事情是这样的:本文出处http://blog.sina.com.cn/s/blog_6552200b0102ve60.html我要用JS替换一个多行文本的关键字正常,没有变量的时候应该是这样:把a替换成b:string.replace(“a”,“b”);以上只能替换第一个匹配的,要全文匹配应该用正则表达式:string.replace(/a/g,“b”);正则加个参数g,表示全文匹配。但现在,我要
Python 正则表达式
暮色尽染
Python python 开发语言
正则在线实用工具:regex101正则表达式(regularexpression)是一种用于匹配字符串中字符组合模式的工具。它可以用来检查一个字符串是否匹配某个模式、提取字符串中的信息、替换字符串中的某些部分等。Python的re模块提供了对正则表达式的支持,允许你执行复杂的字符串搜索、替换、匹配和分割操作。正则表达式匹配re.match():如果正则表达式与字符串的开始部分匹配,则返回一个匹配对
Python正则表达式的使用(re库)
0x208_
爬虫基础 python 正则表达式 开发语言
正则表达式正则表达式是一种用于描述文本模式的工具,它通过特定的语法结构来定义字符串的匹配规则1.安装importre2.使用说明2.1.核心方法方法返回类型是否遍历所有匹配最佳场景re.search()Match对象只返回第一个匹配提取页面中的关键数据(如标题)re.findall()字符串列表返回所有匹配提取同类数据(如所有价格)re.finditer()Match对象迭代器返回所有匹配处理大量
# python正则表达式——实战学习+理论
ricky_fan
Python python 正则表达式 学习
python正则表达式正则表达式是一种用于匹配字符串模式的工具。在Python中,re库提供了正则表达式的支持。1.常用元字符.:匹配任意单个字符(除了换行符)。^:匹配字符串的开头。$:匹配字符串的结尾。*:*匹配前面的字符0次或多次。+:匹配前面的字符1次或多次。?:匹配前面的字符0次或1次。{n}:匹配前面的字符恰好n次。{n,}:匹配前面的字符至少n次。{n,m}:匹配前面的字符至少n次,
不属于python标准库_Python标准库概览
weixin_39949413
不属于python标准库
总结这个部分讲了一些常用的python库的方法。一下子也记不住,不过基本都自己敲了代码试了试。os模块os模块介绍了一些操作系统级别的方法os.getcwd():得到当前工作目录os.chdir():改变工作目录os.system('mkdirhaha'):创建文件夹haha字符串正则匹配导入re模块,调用findall方法,即可进行正则表达式匹配>>>re.findall(r'\bf[a-z]*
【打卡】基金金融问答
来两个炸鸡腿
金融 AIGC
文章目录任务1初始大模型与Agent大模型介绍ChatGLMAgent介绍特点任务2ChatGLMAPI-Python同步调用异步调用正则表达式Agent具体任务请添加图片描述任务3数据库内容解析SQLAgent任务1初始大模型与Agent大模型介绍GLM是智谱AI推出的新一代基座大模型,相比上一代有着显著提升的性能,逼近GPT-4。GLM支持更长的上下文(128k),具备强大的多模态能力,并且推
Dom
周华华
JavaScript html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql 设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport 报表工具 web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
分析Spring源代码之,DI的实现
aijuans
spring DI 现 源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础 IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
JDK1.5 生产消费者
bijian1013
java thread 生产消费者 java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
JAVA版身份证获取性别、出生日期及年龄
bijian1013
java 性别 出生日期 年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
[毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHP Excel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBM jms user MQ MCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chrome vim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
MongoDB查询(2)——数组查询[六]
eksliang
mongodb MongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
cordova读写文件(1)
gundumw100
JavaScript Cordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jquery Ajax html5 FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
java实现SMTP邮件服务器
macroli
java 编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
mongodb group by having where 查询sql
qiaolevip
每天进步一点点 学习永无止境 mongo 纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
Struts2 Pojo(六)
Luob.
POJO strust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st