加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 21:56:20 所属栏目:百科 来源:网络整理
导读:关于正则,常用的一些元字符可以见:百度百科–正则表达式 我在这里仅列举一些容易忘记的概念。 | 将两个匹配条件进行逻辑“或”(Or)运算。 ^ 匹配输入字符串的开始位置。 [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”

关于正则,常用的一些元字符可以见:百度百科–正则表达式

我在这里仅列举一些容易忘记的概念。

  • | 将两个匹配条件进行逻辑“或”(Or)运算。
  • ^ 匹配输入字符串的开始位置。
  • [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
  • [^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
  • 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“n”匹配n。“n”匹配换行符。序列“”匹配“”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。

下面举个例子:

new RegExp("(^| )"+name+"=([^;]*)(;|$)")

上面这个正则中:
(^| ) 匹配开头和空格
[^;] 匹配除了;之外的其它字符
(;|$) 匹配; 和结尾

这个正则是用于cookie中。cookie的保存方式:name=value,有多个cookie时用分号空格隔开:
cookieaa=aaaa; cookiebb=bbbb
如果name值为cookieaa,完整的正则为(^| )cookieaa=([^;]*)(;|$)
匹配结果:cookieaa=aaaa;

上面^出现了两次,分别是不同的意思。
1、匹配开头
2、表示否定
那么到底有什么规律呢?

第一种情况:限定开头

/[(^s+)(s+$)]/g
(^cat)$ (^cat$)
^(cat)$ ^(cat$)

第二种情况:表示字符类的否定。

[^a]表示“匹配除了a的任意字符”。
[^a-zA-Z0-9]表示“找到一个非字母也非数字的字符”。
[^abc]表示“找到一个插入符或者a或者b或者c”。
[^^]表示“找到除了插入符外的任意字符”。(呕!)

总结如下: 只要是”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。 我这里说的是直接在”[]”中使用,不包括嵌套使用。 也就是说”[]”代表的是一个字符集,”^”只有在字符集中才是反向字符集的意思。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读