zoukankan      html  css  js  c++  java
  • 正则表达式匹配两个特殊字符中间的内容

    今天在使用正则表达式中,要匹配两个字符中间的内容,一时没有写出来,后来在网上找到了,记录一下。 
    匹配两个字符串A与B中间的字符串包含A与B: 
    表达式: A.*?B(“.“表示任意字符,“?”表示匹配0个或多个) 
    示例: Abaidu.comB 
    结果: Awww.apizl.comB 
    匹配两个字符串A与B中间的字符串包含A但是不包含B: 
    表达式: A.*?(?=B) 
    示例: Awww.apizl.comB 
    结果: Awww.apizl.com 
    匹配两个字符串A与B中间的字符串且不包含A与B: 
    表达式: (?<=A).*?(?=B) 
    示例: Awww.baidu.comB 
    结果: www.baidu.com

    解释:

    (?=pattern):非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    (?<=pattern):非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。

  • 相关阅读:
    ParallelStreamAPI
    VS Code 安装后的一些配置项
    RSA算法在Python Django中的简单应用
    DLL重定向处理
    Oracle和MySQL差异总结
    Oracle中Table函数简单应用实例
    数据库开发规范
    CentOS7安装开发工具套件时报错解决方案
    安装beanstalkd队列问题——No package beanstalkd available
    CentOS7配置yum源
  • 原文地址:https://www.cnblogs.com/liaods/p/10049730.html
Copyright © 2011-2022 走看看