《javascript权威指南》正则式match和exec方法解析

1. 这两个方法,如果匹配成功,
【菜科解读】
最近看了《javascript权威指南》里面的正则部分,match和exec方法有一些相同点和不同点,在这里写一下加深一下印象。
1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null。
2. 当RegExp的global属性为false时,这两个方法的返回数组是一样的。
数组的第0个元素是整个pattern的第一个匹配字符串,接下来的元素是pattern第一个匹配中的子匹配字符串。
此外,数组还有index和input两个额外属性,index是匹配字符串的起始位置,input是整个输入字符串。
此时,RegExp的lastIndex属性一直是0。
console.log('match_array: ' + JSON.stringify(rm)); console.log('match_array_index: ' + rm.index); console.log('match_array_input: ' + rm.input); console.log('----------------------------'); console.log('exec_array: ' + JSON.stringify(re)); console.log('exec_array_index: ' + re.index); console.log('exec_array_input: ' + re.input);
显示结果为(firefox控制台):
match_array: ["this","i"]match_array_index: 0match_array_input: this is a string----------------------------exec_array: ["this","i"]exec_array_index: 0exec_array_input: this is a string
3. 当RegExp的global属性为true时,返回的数组是不同的。
match方法返回的数组包含着所有匹配字符串,没有子匹配字符串和额外属性。
此时,lastIndex属性无效。
exec方法返回的数组格式与global为false时一样,只是此时RegExp的lastIndex属性有效,匹配是从lastIndex所指示的字符开始的,并且方法执行后会将lastIndex置为本次匹配字符串的下一个字符处,所以循环执行exec方法时会依次匹配整个字符串,直到字符串最后返回null,并将lastIndex置0。
demo:
var s = 'this is a string'; var p = /\b\w*(i)s\b/g; var rm = s.match(p); var re; console.log('match_array: ' + JSON.stringify(rm)); console.log('match_array_index: ' + rm.index); console.log('match_array_input: ' + rm.input); while(re = p.exec(s)){ console.log('----------------------------'); console.log('exec_array: ' + JSON.stringify(re)); console.log('exec_array_index: ' + re.index); console.log('exec_array_input: ' + re.input); console.log('regexp_lastIndex: ' + p.lastIndex); console.log('----------------------------'); console.log('exec_array: ' + re); console.log('regexp_lastIndex: ' + p.lastIndex);
结果:
match_array: ["this","is"]match_array_index: undefinedmatch_array_input: undefined----------------------------exec_array: ["this","i"]exec_array_index: 0exec_array_input: this is a stringregexp_lastIndex: 4----------------------------exec_array: ["is","i"]exec_array_index: 5exec_array_input: this is a stringregexp_lastIndex: 7----------------------------exec_array: nullregexp_lastIndex: 0
综上:
在没有g标识符时,match和exec方法效果是一样的;有g标识符时,exec方法可以提供最完整的匹配结果。
这里顺便提一下RegExp.test()方法,它是exec方法的简化版,有匹配结果就返回true,没有匹配结果就返回false,执行过程与exec是一样的。
相当于 (p.exec(s) != null)。
RegExp的lastIndex属性在有g标识符,且在exec和test方法中是有效的,其他地方是无效的。
《,javascript权威指南,》,正则,式,match,《重装系统软件推荐:快速上手,小白也能轻松解决》
对于小白用户来说,选择合适的软件可以大大简化这一过程。
本文将推荐一系列适合2024年的重装系统软件,帮助用户快速上手,轻松解决问题。
工具原料:系统版本:Windows 11、macOS Ventura品牌型号:Dell XPS 13 (2023款)、Apple MacBook Air M2软件版本:Acronis True Image 2023, EaseUS Partition Master 16.8, Paragon Hard Disk Manager 2024, CleanMyMac X 4.11.0一、重装系统前的准备软件1、Acronis True Image 2023:重装系统前,数据备份是关键。
Acronis True Image 2023是市场上顶尖的数据备份软件之一,支持完整的系统备份和增量备份。
其直观的界面和AI驱动的防护机制使得即使是不熟悉技术的用户也可以轻松使用。
2、案例应用:小明是一名大学生,他的电脑因为常年使用出现了性能下降的问题。
在重装系统前,他使用Acronis True Image完成了所有重要数据的备份,确保过程中的安全无虞。
二、磁盘管理工具1、EaseUS Partition Master 16.8:在安装新系统前,可能需要对磁盘进行分区或重新分配空间。
EaseUS Partition Master是一款功能强大的磁盘管理工具,提供了灵活的分区管理功能,使得分区过程更加简单直观。
2、使用场景:Lisa最近购买了一台新的Dell XPS 13,她想为系统和数据创建不同的分区。
使用EaseUS Partition Master,她成功地在几分钟内完成了整个分区管理过程。
三、系统优化与清理软件1、CleanMyMac X 4.11.0:对于Mac用户,CleanMyMac X是一款出色的系统清理和优化工具。
它不仅能清理废弃文件、缓存,还能实时监控系统健康状况,提升系统运行速度。
2、实例分析:小李是一名设计师,他的MacBook Air存储空间有限。
通过CleanMyMac X的“智能扫描”功能,他有效释放了10GB的存储空间,改善了电脑的运行速度。
拓展知识:1、系统重装的小常识:重装系统的过程中,选对驱动程序是确保硬件正常运行的关键。
在完成系统安装后,使用官方渠道下载和安装驱动程序,能够保证电脑的最佳性能表现。
2、重装系统后的数据恢复:如果在重装系统过程中不小心丢失了重要文件,EaseUS Data Recovery Wizard等数据恢复软件能够帮助找回丢失的数据,避免损失。
总结:选择合适的软件可以大大简化重装系统的过程。
本文介绍的工具如Acronis True Image、EaseUS Partition Master以及CleanMyMac X,都是经过市场验证的优秀软件,能够帮助用户顺利完成系统重装,加快电脑的启动速度,确保数据安全和系统优化。
无论是Windows还是Mac用户,通过这些工具的巧妙结合,都能在2024年轻松完成系统重装,享受更流畅的数字生活。
《详解安装系统:从零开始的详细指南》
本文将手把手指导你如何从零开始安装操作系统,并提供实用建议,确保每一步都简洁明了。
工具原料:系统版本:Windows 11、macOS Ventura、Ubuntu 22.04品牌型号:Dell XPS 13、MacBook Air M2、Lenovo ThinkPad X1 Carbon软件版本:Rufus 3.21(Windows写镜像工具)、Balena Etcher 1.7.9(Mac和Linux写镜像工具)一、基本准备1、备份数据。
在进行系统安装前,确保对重要文件进行了备份。
这一过程可通过外接硬盘或云存储来完成。
2、下载镜像文件。
从官方渠道下载所需的操作系统镜像文件。
以Windows 11为例,可通过微软官方网站获取ISO文件。
二、创建启动盘1、Windows平台。
使用Rufus工具创建启动盘,将U盘插入电脑,运行Rufus并选择ISO镜像文件后点击“开始”。
2、Mac和Linux平台。
使用Balena Etcher创建启动盘,同样插入U盘后选中镜像文件,点击“Flash”按钮。
三、安装操作系统1、调整启动顺序。
进入BIOS或UEFI设置界面(通常按下F2或DEL键),将U盘设为首选启动项。
2、安装过程。
在启动盘引导成功后,根据屏幕提示选择语言、键盘布局等设置,并选择“安装现在”。
3、分区和格式化。
在安装向导中选择自定义分区。
建议分出系统盘和数据盘,以便于后期维护。
4、后续设置。
完成安装后,将进行账户设置、网络配置及更新检查等步骤。
这些配置将会影响系统的使用体验,务必认真对待。
背景知识:操作系统的发展自1940年代计算机诞生以来,操作系统作为软件和硬件交互的桥梁,经历了巨大的发展。
Windows系统自1985年推出后,成为个人电脑操作系统的代表,而Apple在2001年推出的Mac OS X则以其直观界面著称。
近年来,基于Linux内核的Ubuntu在开源社区中获得了广泛应用。
内容延伸:1、双系统安装。
对于有特殊需求的用户,如开发人员或设计师,可能需要在同一设备上运行多个操作系统。
双启动有助于在Windows和Linux之间切换,实现不同软件的使用,而不必购买额外设备。
2、虚拟机安装。
另一种在单台计算机上运行多个系统的方式是使用虚拟机软件,如VMware Workstation或Oracle VM VirtualBox。
通过虚拟机,用户可轻松创建和管理多个操作系统环境。
3、定期维护与更新。
安装好系统后,不要忘记定期进行系统更新和安全补丁的应用,以确保设备安全和问题快速解决。
同时,定期清理硬盘和检查硬件健康也是维持系统稳定性的关键。