正则表达式"或"怎么写

我想问下有个地址ad1有时候是ad2不能用\*d那么正则要怎么判断我是想要么1要么2这个或的正则怎么写?... 我想问下 有个地址 ad1 有时候是ad2 不能用\*d 那么正则要怎么判断 我是想 要么1 要么2 这个或的正则怎么写? 展开
 我来答
小T爱旅行
2018-12-05 · 旅游业余爱好者,希望带大家云旅游。
小T爱旅行
采纳数:301 获赞数:193906

向TA提问 私信TA
展开全部

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。每一门计算机编程语言,都支持正则表达式。正则表达式能够进行数据隐藏,数据采集,数据过滤和数据验证。

扩展资料:

使用正则表达式创建正则对象方法如下:

1.字面量写法-以斜杠表示开始和结束; var regex = /xyz/。

2.内置构造函数生成-通过实例化得到对象;var regex = new RegExp('xyz')。

正则表达式里面字符串含义:

test(str) :判断字符串中是否具有指定模式的子串,返回结果是一个布尔类型的值;exec(str) :返回字符串中指定模式的子串,一次只能获取一个与之匹配的结果。

search(reg) :与indexOf非常类似,返回指定模式的子串在字符串首次出现的位置。

match(reg): 以数组的形式返回指定模式的字符串,可以返回所有匹配的结果。

replace(reg,'替换后的字符') :把指定模式的子串进行替换操作。

split(reg) :以指定模式分割字符串,返回结果为数组。

参考资料来源:百度百科—正则表达式

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友61079ffbd
2006-03-16 · TA获得超过257个赞
知道答主
回答量:226
采纳率:0%
帮助的人:165万
展开全部
在正则表达式中,有一种意义特殊的构造,即元字符。目前已知的元字符有很多,如 *、?、+ 和 {} 字符。其他字符在正则表达式语言中都有特殊的含义。这些字符包括:$ ^ . [ ( | ) ] 和 \。

.(句点或点)元字符是最简单但最常用的一个字符。它可匹配任何单字符。如果要指定某些模式可包含任意组合的字符,使用句点非常有用,但一定要在特定长度范围内。此外,我们知道表达式将对包含在较长字符串中的所有模式进行匹配,假如只需要精确匹配模式,又该怎么办?这在验证方案中经常出现,例如,要确保用户输入的邮政编码或电话号码的格式正确。使用 ^ 元字符可指定字符串(或行)的开始,使用 $ 元字符可指定字符串(或行)的结束。通过将这些字符添加到模式的开始和结束处,可强制模式仅匹配精确匹配的输入字符串。如果 ^ 元字符用在方括号 [ ] 指定的字符类的开头,也有特殊的含义。具体内容见下。

\ (反斜杠)元字符既可根据特殊含义“转义”字符,也可指定预定义集合元字符的实例。同样,具体内容见下。为了在正则表达式中包括文字样式的元字符,必须使用反斜杠进行“转义”。例如,如果要匹配以“c:\”开始的字符串,可使用:^c:\\。注意,要使用 ^ 元字符指出字符串必须以此模式作为开始,然后用反斜杠元字符转义文字反斜杠。

|(管道)元字符用于交替指定,特别用于在模式中指定“此或彼”。例如,a|b 将匹配包含“a”或“b”的任何输入内容,这与字符类 [ab] 非常类似。

最后,括号 ( ) 用于给模式分组。它允许使用限定符让一个完整模式出现多次。为了便于阅读,或分开匹配特定的输入部分,可能允许分析或重新设置格式。

使用目前提供的工具可以完成很多工作。但是,要使用 [0-9] 表示模式中的每个数值数字,或(更糟)使用 [0-9a-zA-Z]表示任何字母数字字符,还有一段相当漫长的过程。为了减轻处理这些常用但冗长模式的痛苦,事先定义了预定义元字符集合。正则表达式的不同实现定义了不同的预定义元字符集合。这些预定义元字符的标准语法是,在反斜杠 \ 后跟一个或多个字符。多数预定义元字符只有一个字符,它们的使用很容易,是冗长字符类的理想替代字符。以下是两个示例:\d 匹配所有数值数字,\w 匹配所有单词字符(字母数字加下划线)。例外情况是一些特定字符代码匹配,此时必须指定所匹配字符的地址,如 \u000D 将匹配 Unicode 回车符。下面列出一些最常用的字符类及其等效的元字符。(以上内容取自.net正则表达式)
元字符 说明与等效字符类
\a 匹配铃声(警报);\u0007
\b 匹配字符类外的字边界,它匹配退格字符,\u0008
\t 匹配制表符,\u0009
\r 匹配回车符,\u000D
\w 匹配垂直制表符,\u000B
\f 匹配换页符,\u000C
\n 匹配新行,\u000A
\e 匹配转义符,\u001B
\040 匹配 3 位 8 进制 ASCII 字符。\040 表示空格(十进制数 32)。
\x20 使用 2 位 16 进制数匹配 ASCII 字符。此例中,\x2- 表示空格。
\cC 匹配 ASCII 控制字符,此例中是 ctrl-C。
\u0020 使用 4 位 16 进制数匹配 Unicode 字符。此例中 \u0020 是空格。
\* 不代表预定义字符类的任意字符都只作为该字符本身对待。因此,\* 等同于 \x2A(是文字 *,不是 * 元字符)。
\p{name} 匹配已命名字符类“name”中的任意字符。支持名称是 Unicode 组和块范围。例如,Ll、Nd、Z、IsGreek、IsBoxDrawing 和 Sc(货币)。
\p{name} 匹配已命名字符类“name”中不包括的文本。
\w 匹配任意单词字符。对于非 Unicode 和 ECMAScript 实现,这等同于 [a-zA-Z_0-9]。在 Unicode 类别中,这等同于 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。
\W \w 的否定,等效于 ECMAScript 兼容集合 [^a-zA-Z_0-9] 或 Unicode 字符类别 [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]。
\s 匹配任意空白区域字符。等效于 Unicode 字符类 [\f\n\r\t\v\x85\p{Z}]。如果使用 ECMAScript 选项指定 ECMAScript 兼容方式,\s 等效于 [ \f\n\r\t\v] (请注意前导空格)。
\S 匹配任意非空白区域字符。等效于 Unicode 字符类别 [^\f\n\r\t\v\x85\p{Z}]。如果使用 ECMAScript 选项指定 ECMAScript 兼容方式,\S 等效于 [^ \f\n\r\t\v] (请注意 ^ 后的空格)。
\d 匹配任意十进制数字。在 ECMAScript 方式下,等效于 Unicode 的 [\p{Nd}]、非 Unicode 的 [0-9]。
\D 匹配任意非十进制数字。在 ECMAScript 方式下,等效于 Unicode 的 [\p{Nd}]、非 Unicode 的 [^0-9]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2006-03-16
展开全部
如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:

data1.dat

data2.dat

datax.dat

dataN.dat

如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataXYZ.dat

尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hjywyj
2012-11-01 · TA获得超过2683个赞
知道大有可为答主
回答量:3030
采纳率:50%
帮助的人:1736万
展开全部
ad[12]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式