你不得不知的Javascript正则表达式

本文介绍了如何使用正则表达式在字符串中查找特定模式,包括匹配字符串、数字、空格等基本操作,并通过JavaScript实例展示了如何实现这些匹配。

了解几个简单的正则表达式还是很容易的,也非常有必要。


正则表达式(regular expression):

正则表达式用于在一个字符串中找到确定的字串或模式。

例如:
如果我们想在“The dog chased the cat”字符串中找到“the”,我们可以用这个表达式:/the/gi

让我们分开来理解 :

/ 是正则表达式的开始.

the 是我们想要匹配的模式串.

/ 是正则表达式的结束.

g 代表global(全局,全部), 就是找到字符串中所有与the匹配的,不只是第一个.

i 代表ignore 忽略大小写(uppercase or lowercase) 。

看下面的例子:

var testString = "Ada Lovelace and Charles Babbage designed the first computer and the software that would have run on it.";

// Example1
var expressionToGetSoftware = /software/gi;
var softwareCount = testString.match(expressionToGetSoftware).length;
//返回1  

// Example2
var expression = /and/gi;
var andCount = testString.match(expression).length;
//返回2

正则表达式查找数字

我们可以通过正则表达式的选择器来选择特定类型的值。

一种选择器就是数字选择器 \d ,用来检索一个串中的数字(例如0到9).

在Javascript的语法格式为:/\d/g

在选择器后面加一个+号可以匹配多个数字:/\d+/g

var testString = "There are 3 cats but 4 dogs.";

var expression = /\d+/g;//选择多个数字

var digitCount = testString.match(expression).length;
//返回2

查找空格

我们同样可以使用 \s选择器来查找串种的空格 。

此空格字符不仅包括 ” ” (space), 还有\r , \n , \t , 和\f (换页).

表达式:/\s+/g

var testString = "How many spaces are there in this sentence?";

var expression = /\s+/g; 

var spaceCount = testString.match(expression).length;
//返回7

反转正则表达式

你可以大写选择器来达到相反的效果。

例如:\s 匹配空格, 但是\S会匹配所有不是空格的东西。

例子:

用 /\S/g 来数在 testString字符串中非空格的字符个数。

var testString = "How many non-space characters are there in this sentence?";

var expression = /\S/g; 

var nonSpaceCount = testString.match(expression).length;
//返回49
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式中使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式中使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式中使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式中使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式中使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值