正则表达式 - 字符匹配不以某字段开头或者结尾
我的博文地址: https://www.luoyangfu.com/art...
最近有一个需求,要求是判断某个字符串不以什么开头。然后就开始探索这个不以什么开头和不易什么结尾的正则怎么写,why?
不以某字符串开头
这里需要提一个概念叫 否定式前项匹配
这个东东。
向前匹配
根据匹配的字符序列后面存在一个特定的字符序列
或者不存在一个特定的序列
来决定是否匹配。对于向前匹配,出现在指定项后面的字符序列不会被正则表达式返回。
这里说后面存在一个特定字符序列, 也称之为肯定式向前查找
不存在一个特定的序列,也称之为否定式向前查找
这两个概念后续再深入
开始解决这个问题不以某字符串开头:
^(?!str)
这里使用了下面几个元符号:
^
判断是否是开头?!
这里是否定向前查询
示例:
- 不以test 开头字符串
/^(?!test).*/
不以某字符串结尾
这里要说一个概念叫 否定式向后匹配
,前面说了向前匹配,想后匹配呢?
向后匹配
一个要匹配的字符串序列前面有或者没有指定的字符串序列
这里有指定字符串序列也叫肯定式向后匹配
这里没有指定字符串序列也叫否定式向后匹配
这两个概念后续深入
解决不以某字符串结尾:
(?<!str)$
这里用了如下几个符号:
?<!
否定式向后查询$
是否结尾
示例:
不以 end 结尾
/.*(?<!end)$/
收集几个 ?
元字符用法
(?:str) 非捕获组 (?=str) 肯定式向前查找 (?!str) 否定式向前查找 (?<=str) 肯定式向后查找 (?<!str) 否定式向后查找
参考地址:
https://blog.csdn.net/LinBili...
https://blog.csdn.net/libingx...
相关推荐
wangzhaotongalex 2020-10-20
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
taomengxing 2020-09-07
MaggieRose 2020-08-19
jyj00 2020-08-15
MaggieRose 2020-07-04
modaiairen 2020-06-28
ziggurat 2020-06-28
JnX 2020-06-27
jyj00 2020-06-26
山水沐光 2020-06-25
shqhope 2020-06-23
eroshn 2020-06-21
码墨 2020-06-16
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13