浅谈正则表达

本文介绍了正则表达式的基本概念和常见符号,包括匹配单个字符、范围、次数控制等,并展示了在文本匹配、替换和拆分方面的应用。通过实例演示了matches、replaceAll和split等方法的使用,揭示了正则表达式在日常工作中处理字符串的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式简介:

正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。

正则表达式目前被集成到了各种文本编辑器/文本处理工具当中。

在生活工作中,它被应用于诸多场景,譬如表单提交时,进行用户名密码的验证;从大量信息中快速提取指定内容,在一批url中,查找指定url;将指定格式的文本进行正则匹配查找,找到之后进行特定替换等。

单个符号简介:

1.x       用来表达指定字符x      如:Java匹配Java
2.  .      表达任意单个字符(除换行外)        如:Java匹配J..a
3.[]        只有括号内的才参与匹配,只匹配单个字符       如:tan匹配t[abcd]n
4.匹配次数的符号 *(0次或多次)、+(1次或多次)、?(0次或1次)、{n}(恰好n次)、{n,m}(n次到m次之间)
5. ^    表示否 、如果在方括号内  表示不想匹配的字符     如y匹配[^x]
6.\s 表示非空  \r表示空

快捷符号简介:

1、\d表示[0—9]
2、\D表示[^0—9]
3、\w表示[0—9A—Z_a—z]
4、\W表示[^0—9A—Z_a—z]
5、\s表示[\t\n\r\f]
6、\S表示[^\t\n\r\f]

当然,正则表达式也还有许多好用的方法:

查找类matches方法(匹配符合一个模式的字符串集)

如“Java is fun”.matches("Java.☆")     “Java is cool”.matches("Java.☆")均返回true

还有诸如替换类repalceAll方法 用于替换所有匹配的子字符串

如:System.out.println("Java Java Java").repalceAll("v\\w","wi"));

显示 Jawi Jawi Jawi

又或者repalceFirst方法替换第一个匹配的子字符串

如System.out.println("Java Java Java").repalceFirst("v\\w","wi"));

显示 Jawi Java Java

抑或是拆分类split 使用匹配的分隔符将一个字符串拆分为子字符串

如:String[] tokens = "Java1HTML2Perl".split("\\d")

就用数字作为分隔符将字符串分割成Java HTML Perl 并分别存入token[0] token[1] token [2]中

Lasso,全称Least Absolute Shrinkage and Selection Operator,是一种常用的回归算法。它在线性回归的基础上引入了L1正则化项,通过对系数进行约束,使得模型的权重更加稀疏,即对不重要的特征进行了去除或减弱。 Lasso的优点在于它能够在高维数据中进行特征选择,避免了过拟合问题。通过减少不重要特征的权重,它能够更好地处理多重共线性的情况。Lasso算法的目标函数是通过最小化均方误差和L1正则化项的和来实现的。 Lasso算法在实际应用中具有广泛的应用。首先,由于Lasso能够进行特征选择,它在特征工程中非常有用。在处理具有大量特征的数据时,Lasso能够帮助我们找到最重要的特征,从而简化模型,提高预测准确率。其次,Lasso也用于稀疏信号恢复,包括图像压缩和恢复、语音处理等领域。另外,Lasso也可以用于分类问题,例如在基因表达数据中的药物响应预测。 然而,Lasso也存在一些限制。首先,由于L1正则化的特性,Lasso在存在高度相关特征的情况下可能会选择其中一个特征,并将其系数置为零,而忽略其他高度相关的特征。其次,Lasso是一个线性模型,对于非线性问题可能效果较差。此外,Lasso对于数据中存在较多噪声的情况可能表现不佳。 总体而言,Lasso算法是一种强大的回归算法,在特征选择和稀疏信号恢复等领域有广泛的应用。但在具体应用时,需要根据问题的特点和数据的特征来进行合理的选择和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值