正则表达式的基本应用

电脑杂谈  发布时间:2020-05-27 17:24:05  来源:网络整理

正则表达式怎么使用_c 正则表达式使用_正则表达式使用 js

例如,您好,三个单词nihi wohime. 如果需要匹配hi,我们可以直接输入hi match正则表达式怎么使用,但是我们注意到此匹配将匹配hi nihi wohime三个词中的hi同事. (注意: 这里的输出是嗨嗨嗨三嗨).

如果我们只想匹配仅包含hi的单词,即在h的开头和i的结尾没有其他单词. 您需要使用\ b: 用法\ bhi \ b(这意味着在配置h的开头没有其他单词,而i的结尾是hi单词)

\ b: 通常是一个元字符,等效于占位符,匹配单词的开头和结尾.

如果我们要匹配hi并且在他前面有两个单词,我们将使用..这也是一个元字符,他说: 匹配除换行符之外的任何单个字符. 通常与*一起使用也是一个元字符,这意味着先前的内容可以匹配任意次. . *表示可以多次匹配任何字符.

所以现在有nihao ni nihaome ni hao

如果需要匹配nihaome,则可以使用\ bnihaome \ b或ni. 我me * e

在这里应该注意: 如果一行中有类似nia zhuzai zhongguo ni hao zhongguo ni ai zhongguo的单词,如果要匹配ni xxxx zhongguo,则可以使用以前的知识来使用\ bni \ b. * \ bzhongguo \ b或\ bni \ b. * zhongguo这里的第二个需要注意的是,原始文本中ni后面只有一个空格,ni后面只有一个空格,所以这里最多只能有一个空格.

如果要匹配0XX-XXXXXXX在此处表示电话号码,即X只能代表数字. 我将使用\ d

\ d其中\ d表示匹配任何数字(即0-9中的任何数字)

0 \ d \ d- \ d \ d \ d \ d \ d \ d \ d \ d(请注意,存在一个-这个-没有其他含义只是为了表示自己,即位置出现)

当然,为了简化编写,我们可以在此处使用简单的编写: 0 \ d {2}-\ d {7}注意: 此处的{7}代表7位数字,包括前一个\ d.

\ w匹配字母或数字或下划线或汉字

例如: \ ba \ w * \ b表示任何以a开头的单词. 这里应该注意,添加awd aww a12将在此处匹配(*与\ w匹配的数字或单词或下划线没有任何次数匹配,他的意思是\ w这样的数据可以出现任何次数)

\ d +匹配1个或多个连续数字. 这里+是类似于*的元字符,不同之处在于*匹配重复了任意次(可能是0次),而+匹配重复了1次或更多次.

\ b \ w {6} \ b匹配正好有6个字符的单词. wdf_46 ______ 123456 qwerty可以匹配

\ s匹配任何空白字符

^ $

元字符^(与数字6相同的键位置上的符号)和$都匹配一个位置,类似于\ b. ^匹配要查找的字符串的开头正则表达式怎么使用,$匹配结尾. 这两个代码在验证输入内容时非常有用. 例如,如果一个网站要求您填写的QQ号必须为5到12位数字,则可以使用: ^ \ d {5,12} $. 应当注意,某些主机不支持此用法. 您需要使用Perl的常规引擎,例如Linux的grep. 您需要将-P正常使用,例如egrep -P“ ^ \ d {5,12} $” / tmp / 1

请注意,如果在使用过程中需要使用元字符本身,例如\ sd,则需要在元字符前面添加\作为\\ sd

常用的重复方法

重复零次或多次

c 正则表达式使用_正则表达式怎么使用_正则表达式使用 js

重复一次或多次

重复零次或一次

重复n次

重复n次以上

{n,m}

重复n到m次

^ \ w +: 这里需要注意的是+匹配先前的类型! ! ! ! !

[]: 用法与[]中给定的任何匹配!例如: abb a8b ab8h a [b8h] b只能匹配abba8b. 他只能匹配里面给定的一个,如果不止一个,它将不匹配.

了解: \(?0 \ d {2} [)-]? \ d {8}: 提醒“(”是一个元字符.

\ d {5}-\ d {4} | \ d {5}此表达式用于匹配美国邮政编码. 美国邮递区号规则是5位数字或9个数字,中间用连字符分隔. 给出此示例的原因是因为它可以说明一个问题: 使用分支条件时,请注意每个条件的顺序. 如果将其更改为\ d {5} | \ d {5}-\ d {4},则它将仅匹配5位邮政编码(和9位邮政编码的前5位). 原因是当匹配分支条件时,将从左到右测试每个条件. 如果某个分支得到满足,它将不会照顾其他条件. 这里需要特别注意的是,如果您输入23827-easasd123的匹配结果是23827,则我认为它将匹配26827-在这里应该这样理解(\ d {5}-\ d {4})| (\ d {5})“ |范围应特别注意

有时,您需要查找不属于可以轻松定义的字符类的字符. 例如,如果要查找数字以外的任何字符,则需要使用反义:

表3.常见的反义代码/语法说明

匹配所有非字母,数字,下划线,汉字的字符

匹配任何非空字符

匹配任何非数字字符

匹配不是单词开头或结尾的位置

匹配除x以外的任何字符

[^ aeiou]

匹配除字母aeiou之外的任何字符

示例: \ S +匹配不包含空格的字符串.

] +>匹配以尖括号括起来的字符串.

正则表达式怎么使用_c 正则表达式使用_正则表达式使用 js

还要注意\

使用括号时,有许多特殊用途的语法. 下面列出了一些最常用的:

表4.常见的分组语法分类代码/语法描述

捕获

(exp)

匹配exp并将文本捕获到自动命名的组中

(? exp)

匹配exp,并将文本捕获到名为name的组中,也可以写成(?'name'exp)

(?: exp)

match exp,不捕获匹配的文本,并且不为此组分配组号

零宽度断言

(?= exp)

匹配exp前面的位置

(?<= exp)

匹配exp之后的位置

(?! exp)

匹配exp后面没有的位置

(?<!exp)

匹配不在前面的exps的位置

评论

(?#条评论)

正则表达式怎么使用_正则表达式使用 js_c 正则表达式使用

这种分组对正则表达式的处理没有任何影响,并且用于提供注释以供人们阅读

我们已经讨论了前两个语法. 第三个(?: Exp)不会更改正则表达式的处理方式,但是此类组匹配的内容不会像前两个一样捕获到一个组中,也不会具有组号

当正则表达式包含可以接受重复的限定符时,通常的行为是(在可以匹配整个表达式的前提下)匹配尽可能多的字符. 以以下表达式为例: * B,它将匹配以a开头并以b结尾的最长字符串. 如果使用它搜索aabab,则它将匹配整个字符串aabab. 这称为贪婪匹配.

有时,我们需要惰性匹配,即匹配尽可能少的字符. 上面给出的限定符可以转换为延迟匹配模式,只要其后跟问号即可. 通过这种方式, *?表示匹配任意数量的重复,但要在使整个匹配成功的前提下使用最少的重复. 现在看一下惰性版本的示例:

a. *? b匹配以a开头并以b结尾的最短字符串. 如果将其应用于aabab,它将匹配aab(第一个至第三个字符)和ab(第四至第五个字符).

为什么第一个匹配是aab(第一个到第三个字符)而不是ab(第二个到第三个字符)?简而言之,由于正则表达式具有另一条规则,因此它们的优先级比懒惰/贪婪的规则高: 首先开始的比赛具有最高优先级-最早开始的比赛获胜.

上面已经描述了用于构造正则表达式的大量元素,但是有很多事情没有提到. 以下是一些未提及的元素的列表,包括语法和简单指令. 在需要使用它们时,可以在Internet上找到更详细的参考材料以进行学习. 如果安装MSDN Library,则还可以在.net下找到正则表达式的详细文档. 这里的介绍很简单. 如果需要更详细的信息而不在计算机上安装MSDN Library,则可以查看有关正则表达式语言元素的MSDN文档.

表7.尚未详细讨论的语法代码/语法描述

警报字符(将其打印为计算机蜂鸣声)

通常是单词边界的位置,但是如果在字符类中使用它,则表示退格

标签,标签

输入

“垂直”标签

换页

换行符

转义

ASCII码为八进制代码nn的字符

ASCII码为十六进制代码nn的字符

\ unnnn

Unicode代码中十六进制代码为nnnn的字符

ASCII控制字符. 例如,\ cC表示Ctrl + C

c 正则表达式使用_正则表达式使用 js_正则表达式怎么使用

字符串的开头(类似于^,但不受处理多行选项的影响)

字符串结尾或行尾(不受处理多行选项的影响)

字符串结尾(类似于$,但不受处理多行选项的影响)

当前搜索的开始

\ p {name}

以Unicode命名的字符类,例如\ p {IsGreek}

(?> exp)

贪婪的子表达式

(?- exp)

平衡组

(?im-nsx: exp)

更改子表达式exp中的处理选项

(?im-nsx)

更改表达式后半部分的处理选项

(?(exp)是|否)

将exp作为零宽度的前向优先断言. 如果在此位置匹配,则使用yes作为该组的表达式;否则不使用

(?(exp)是)

同上,只将空表达式用作否

(?(name)是|否)

如果名为name的组捕获内容,则使用yes作为表达式;否则不使用

(?(name)是)

同上,只将空表达式用作否


本文来自
电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-224276-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...