正则表达式 - 字符婚配不以某字段开首或许末端

我的博文地点:
https://www.luoyangfu.com/art…

近来有一个需求,要求是推断某个字符串不以什么开首。然后就最先探究这个不以什么开首和不容易什么末端的正则怎样写,why?

不以某字符串开首

这里须要提一个观点叫 否认式前项婚配 这个东东。

向前婚配

依据婚配的字符序列背面存在一个特定的字符序列或许不存在一个特定的序列来决议是不是婚配。关于向前婚配,出现在指定项背面的字符序列不会被正则表达式返回。

这里说背面存在一个特定字符序列, 也称之为肯定式向前查找

不存在一个特定的序列,也称之为否认式向前查找

这两个观点后续再深切

最先处理这个题目不以某字符串开首:

^(?!str)

这里使用了下面几个元标记:

  1. ^ 推断是不是是开首
  2. ?! 这里是不是定向前查询

示例:

  1. 不以test 开首字符串
/^(?!test).*/

《正则表达式 - 字符婚配不以某字段开首或许末端》

不以某字符串末端

这里要说一个观点叫 否认式向后婚配,前面说了向前婚配,想后婚配呢?

向后婚配

一个要婚配的字符串序列前面有或许没有指定的字符串序列

这里有指定字符串序列也叫
肯定式向后婚配

这里没有指定字符串序列也叫
否认式向后婚配

这两个观点后续深切

处理不以某字符串末端:

(?<!str)$

这里用了以下几个标记:

  1. ?<! 否认式向后查询
  2. $ 是不是末端

示例:

不以 end 末端

/.*(?<!end)$/

《正则表达式 - 字符婚配不以某字段开首或许末端》

网络几个 ? 元字符用法

(?:str)   非捕捉组

(?=str) 肯定式向前查找

(?!str) 否认式向前查找

(?<=str) 肯定式向后查找

(?<!str) 否认式向后查找

参考地点:

https://blog.csdn.net/LinBili…

https://blog.csdn.net/libingx…

    原文作者:zsirfs
    原文地址: https://segmentfault.com/a/1190000019266662
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞