正则表达式是用于字符串匹配的强大工具,它能够使用一套规则来匹配文本中的字符组合。
在JavaScript中,正则表达式的应用非常广泛,可用于字符串的搜索、替换、提取等操作。
关于正则表达式的基本语法和应用场景:1.字符串长度的计算可以考虑字符的字节大小。
中文字符属于双字节字符,每个字符长度记为2,ASCII字符每个长度计为1。
可以使用正则表达式配合String的扩展方法来实现。
2.匹配中文字符的正则表达式使用Unicode范围来指定,`\u4e00-\u9fa5`包括了绝大多数汉字字符。
3.匹配双字节字符时,可以使用`[^\x00-\xff]`,这可以匹配任何非ASCII字符。
4.匹配空行,可以使用正则表达式`\n[\s|]*\r`,这能够识别连续换行符之间的空白字符。
5.匹配HTML标签通常使用较为复杂的正则表达式,例如`/<(.*)>.*<\/\1>|<(.*)\/>/`,这能够匹配开始标签和自结束标签。
6.去除字符串首尾的空格,可以使用正则表达式`(^\s*)|(\s*$)`,这在JavaScript中通过扩展String原型的方式实现。
7.IP地址的匹配和转换可以通过正则表达式解析IP地址的各部分数字,并将其转换为一个数值,例如`functionIP2V(ip)`,该函数会将IP地址转换为数值形式。
8.正则表达式也可以用于提取URL中的文件名,例如`varip="**.***.**.***"`,之后使用`split`函数处理字符串。
9.去除字符串中重复字符可以使用正则表达式和后向引用的组合,但需要注意到顺序有要求的字符串可能不适用此方法。
10.匹配Email地址和网址URL的正则表达式也是常见的需求,它们通常包含复杂的规则和结构。
11.利用正则表达式限制网页表单中的文本框输入内容,如限制只能输入中文,可以使用`onkeyup`和`onbeforepaste`事件处理函数结合正则表达式。
正则表达式的能力并非无限,它有时可能无法准确匹配某些复杂的字符串模式,尤其是当字符串顺序对结果有影响时,例如在去重字符串中的重复字符时,可能会出现匹配不正确的情况。
在使用正则表达式时,需要注意以下几点:-某些正则表达式操作可以通过非正则表达式的方法简化实现,例如使用`split`函数代替复杂的正则表达式来处理IP地址。
-在应用正则表达式进行匹配时,需要对结果进行验证,尤其是正则表达式自身可能会有匹配不精确的情况。
-在应用正则表达式于生产环境之前,要进行充分的测试,保证其正确性。
通过上述的知识点,可以看出正则表达式在JavaScript编程中发挥着至关重要的作用。
掌握其使用和技巧对于开发人员来说是非常重要的。
无论是在字符串处理、表单验证还是数据提取等场景,合理有效地使用正则表达式可以大大提高编程效率和代码质量。
2025/6/14 23:57:10 74KB
1
做网站或某些基于网络的软件可能需要根据用户端IP地址查询其物理地址信息,那么就会用到IP数据库。
本文件是我根据2011年5月份的纯真IP数据库进行整合而成,合并了部分同一地区IP,将原来的记录由30多万缩减到17万多条,并将其中的IP数据格式转换成了整数形式,方便查询,提高了查询效率。
附:IP格式转换可参考下面两个VB.NET函数PublicSharedFunctionGetIpFromInt32(ByValvalueAsUInt32)AsStringReturn(value>>24).ToString()&"."&(value24).ToString()&"."&(value<>24).ToString()EndFunctionPublicSharedFunctionGetIpFromString(ByValvalueAsString)AsUInt32DimsAsString()=value.Split("."c)ReturnUInt32.Parse(s(0))<<24OrUInt32.Parse(s(1))<<16OrUInt32.Parse(s(2))<<8OrUInt32.Parse(s(3))EndFunction
2025/5/28 3:11:47 8.13MB IP数据库 IP地址
1
主要是通过R语言,对网页上的数据进行进行爬取,并且整理成文本格式,或者excel格式。
Sys.setlocale("LC_TIME","C")##[1]"C"-----------------------------------------------------------##Createafunction,theparameter'i'meanspagenumber.getdata%html_nodes("div.post_itemdiv.post_item_foot")%>%html_text()%>%strsplit(split="\r\n")#对日期数据的处理-------------------------------------------------------------post_date%str_sub(9,24)%>%as.POSIXlt()##getthedatepost_year%html_nodes("div.post_itemh3")%>%html_text()%>%as.character()%>%trim()
2025/3/19 18:30:24 4KB R语言 爬取数据 整理归类
1
1.首先,要获得Win10WindowsApps文件夹访问权限的具体操作方法如下:步骤:第一步:设置显示隐藏文件夹,打开C:\ProgramFiles文件夹,右击WindowsApps文件夹,选择“属性”,在安全里面选择“高级”第二步:更改所有者,为Everyone,确定。
第三步:最后会出现“Windows安全”窗口,等待系统设置好安全信息就可以了。
2.查:通过系统内置的WindowsPowerShellI命令,尝试解决Win10应用商店消失的问题。
一、在开始菜单,右键打开WindowsPowerShell(管理员),在WindowsPowerShell(管理员)页面,输入以下命令,获取您电脑所安装的Windows10内置程序的版本:Get-AppxPackage-allusers检查是否有附件中安装包,没有的话,下载附件,解压到WindowsApps文件夹:Name:Microsoft.WindowsStorePublisher:CN=MicrosoftCorporation,O=MicrosoftCorporation,L=Redmond,S=Washington,C=USArchitecture:X64ResourceId:Version:11811.1001.27.0PackageFullName:Microsoft.WindowsStore_11811.1001.27.0_x64__8wekyb3d8bbweInstallLocation:C:\ProgramFiles\WindowsApps\Microsoft.WindowsStore_11811.1001.27.0_x64__8wekyb3d8bbweIsFramework:FalsePackageFamilyName:Microsoft.WindowsStore_8wekyb3d8bbwePublisherId:8wekyb3d8bbwePackageUserInformation:{S-1-5-21-457848557-3406337263-1732915882-1001[ZunPC]:Installed}IsResourcePackage:FalseIsBundle:FalseIsDevelopmentMode:FalseNonRemovable:FalseDependencies:{Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x64__8wekyb3d8bbwe,Microsoft.NET.Native.Runtime.1.7_1.7.25531.0_x64__8wekyb3d8bbwe,Microsoft.VCLibs.140.00_14.0.27323.0_x64__8wekyb3d8bbwe,Microsoft.WindowsStore_11811.1001.27.0_neutral_split.scale-100_8wekyb3d8bbwe...}IsPartiallyStaged:FalseSignatureKind:StoreStatus:Ok3.安装依存的运行库Microsoft.NET.Native.Framework.1.7和Microsoft.VCLibs.140.00_14.0.27323.0_x64:在WindowsPowerShell(管理员)页面,输入以下命令,安装:Add-appxpackage-register"C:\ProgramFiles\WindowsApps\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x64__8wekyb3d8bbwe\appxmanifest.xml"-disabledevelopmentmode(黄色标识的部分,为第二部分中复制的内容)Add-ap
2025/2/14 4:33:43 20.35MB Win10 应用商店安装
1
菲力浦这是什么这是php-fpm(CVE-2019-11043)中的错误的利用。
在某些Nginx+php-fpm配置中,该错误可能是从外部触发的。
这意味着,如果您的配置易受攻击,则Web用户可能会执行代码(请参阅)。
写上去尽管我们懒得写论文,但蔡健熙在他的博客中发表。
对他表示敬意。
此外,我ZeroNights2019的幻灯片。
易受伤害的是什么如果网络服务器运行nginx+php-fpm,并且nginx的配置类似于location~[^/]\.php(/|$){...fastcgi_split_path_info^(.+?\.php)(/.*)$;fastcgi_paramPATH_INFO$fastcgi_path_info;fastcgi_passphp:9000;...}它也缺少任何脚本存
2024/12/4 14:35:34 7.15MB Go
1
3.4:缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战(1).docx
2024/6/22 4:18:35 36KB linux
1
1本程序在vc++6.0编译通过并能正常运行。
2主界面程序已经尽量做到操作简便了,用户只需要根据提示一步步进行操作就行了。
六思考和总结:这个课程设计的各个基本操作大部分都在我的综合性实验中实现了,所以做这个主要攻克插入和删除这两个算法!其中插入在书本上已经有了,其中的右平衡算法虽然没有给出,但通过给出的左平衡算法很容易就可以写出右平衡算法。
所以最终的点就在于删除算法的实现!做的过程中对插入算法进行了非常非常多次的尝试!花了非常多的时间,这其中很多时候是在对程序进行单步调试,运用了VC6。
0的众多良好工具,也学到了很多它的许多好的调试手段。
其中删除算法中最难想到的一点是:在用叶子结点代替要删除的非叶子结点后,应该递归的运用删除算法去删除叶子结点!这就是整个算法的核心,其中很强烈得体会到的递归的强大,递归的最高境界(我暂时能看到的境界)!其它的都没什么了。
选做的那两个算法很容易实现的:1合并两棵平衡二叉排序树:只需遍历其中的一棵,将它的每一个元素插入到另一棵即可。
2拆分两棵平衡二叉排序树:只需以根结点为中心,左子树独立为一棵,右子树独立为一棵,最后将根插入到左子树或右子树即可。
BSTreeEmpty(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:若T为空平衡二叉排序树,则返回TRUE,否则FALSE.BSTreeDepth(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:返回T的深度。
LeafNum(BSTreeT)求叶子结点数,非递归中序遍历NodeNum(BSTreeT)求结点数,非递归中序遍历DestoryBSTree(BSTree*T)后序遍历销毁平衡二叉排序树TR_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作右旋处理,处理之后p指向新的树根结点即旋转处理之前的左子树的根结点L_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作左旋处理,处理之后p指向新的树根结点,即旋转处理之前的右子树的根结点LeftBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作左平衡旋转处理,本算法结束时,指针T指向新的根结点RightBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作右平衡旋转处理,本算法结束时,指针T指向新的根结点Insert_AVL(BSTree*T,TElemTypee,int*taller)若在平衡的二叉排序树T中不存在和e有相同的关键字的结点,则插入一个数据元素为e的新结点,并返回OK,否则返回ERROR.若因插入而使二叉排序树失去平衡,则作平衡旋转处理布尔变量taller反映T长高与否InOrderTraverse(BSTreeT)递归中序遍历输出平衡二叉排序树SearchBST(BSTreeT,TElemTypee,BSTree*f,BSTree*p)在根指针T所指的平衡二叉排序树中递归的查找其元素值等于e的数据元素,若查找成功,则指针p指向该数据元素结点,并返回TRUE,否则指针p指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULLDelete_AVL(BSTree*T,TElemTypee,int*shorter)在平衡二叉排序树中删除元素值为e的结点,成功返回OK,失败返回ERRORPrintBSTree_GList(BSTreeT)以广义表形式打印出来PrintBSTree_AoList(BSTreeT,intlength)以凹入表形式打印,length初始值为0Combine_Two_AVL(BSTree*T1,BSTreeT2)合并两棵平衡二叉排序树Split_AVL(BSTreeT,BSTree*T1,BSTree*T2)拆分两棵平衡二叉树}(2)存储结构的定义:typedefstructBSTNode{ TElemTypedata; intbf;//结点的平衡因子 structBSTNode*lchild,*rchild;//左.右孩子指针}BSTNode,*BSTree;
1
vb学生管理系统源代码部分代码PublicUserNameAsStringPublictxtSQLAsString'usetostorerecordSQLsentencePublicdreamAsADODB.Recordset'usetostorerecordobjectPublicMsgtextAsString'用来存放返回信息PublicOKAsBoolean''PublicdbAsStringPublicSubhighlight()WithScreen.ActiveFormIf(TypeOf.ActiveControlIsTextBox)Then.ActiveControl.SelStart=0.ActiveControl.SelLength=Len(.ActiveControl)EndIfEndWithEndSubSubMain()'DimLoginAsNewLogin'Login.ShowvbModal'fNotLogin.OKThen'LoginFailedsoexitapp'End'EndIf'Unloadstudentmdi'Setlogin=Newloginlogin.ShowEndSubPublicFunctionconnectstring()AsStringconnectstring="Provider=Microsoft.jet.OLEDB.3.51;Datasource=f:\schoolgroup\school.mdb"EndFunctionPublicFunctionExecuteSQL(ByValSQLAsString,MsgstringAsString)AsADODB.RecordsetDimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsStringOnErrorGoToExecuteSQL_ErrorsTokens=Split(SQL)Setcnn=NewADODB.Connectioncnn.OpenconnectstringIfInStr("INSERT,DELETE,UPDATE",UCase$(sTokens(0)))Thencnn.ExecuteSQLMsgstring=sTokens(0)&"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim(SQL),cnn,adOpenKeyset,adLockOptimisticSetExecuteSQL=rstMsgstring="查询到"&rst.RecordCount&"条记录"EndIfexecuteSQL_exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:Msgstring="查询错误:"&err.DescriptionResumeexecuteSQL_exitEndFunctionPublicFunctionTesttxt(txtAsString)AsBooleanIfTrim(txt)=""ThenTesttxt=FalseElseTesttxt=TrueEndIfEndFunction
2024/4/26 9:34:11 210KB vb 学生 管理系统
1
字符串转数组的使用
2024/2/26 1:49:14 5KB qt 数组 字符串集合
1
用C/C++语言编程实现归并分类算法6.3和快速分类算法6.6。
对于快速分类,SPLIT中的划分元素采用三者A(low),A(high),A((low+high)/2)中其值居中者。
(2)随机产生20组数据(比如n=5000i,1≤i≤20)。
数据均属于范围(0,105)内的整数。
对于同一组数据,运行快速分类和归并分类算法,并记录各自的运行时间(以毫秒为单位)。
(3)根据实验数据及其结果来比较快速分类和归并分类算法的平均时间,并得出结论。
2024/2/16 22:04:36 3KB mergesort quicksort
1
共 20 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡