正则表达式-匹配A和B之间字符串
需求:在匹配到 union的时候检测后面是不是union all
^是正则表达式匹配字符串开始位置
$是正则表达式匹配字符串结束位置
* (?!all) 的意思是 , 不匹配all
* 那么((?!all).)* 的意思就是匹配 不含all的字符(?!all) 跟 任意字符. 的组合,出现任何次
* ((?!all).)* 的结果就是 匹配了不包含all的字符串
检验如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexMatches {public static void main(String args[]) {String str = "SELECT E_Name FROM Employees_China union SELECT E_Name FROM Employees_USA";String pattern = "union\\s*((?!all).)*$";Pattern r = Pattern.compile(pattern);Matcher m = r.matcher(str);System.out.println(m.matches());}}
或者使用
?=、?!、?<= ?<! 用于限定它前后的表达式,不能单独使用,本身没有作用。a(?=b) 匹配后面有 b 的 a。a(?!b) 匹配后面没有 b 的 a。(?<=a) b 匹配前面有 a 的 b。(?<!a) b 匹配前面没有 a 的 b。
正则表达式为 (?<=左侧的内容).*(?=右侧的内容)
\s |
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
\S |
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
字符串"my name iszhangvalue hello world"
①、想要获取"is" 和“value”之间的内容但是不包括“is”和“value”
(?<=is).*(?=value)
②、想要获取想要获取"is" 和“value”之间的内容包括“is”和“value”
is(.*?)value
需求:
写正则表达式:
提取出一段字符串中所有如下部分:
以 'Subject': ' 开头
紧接着以第一个 ', 结尾
正则表达式为:(?<='Subject': ').*?(?=',)
如果是
(?<='Subject': ').*(?=',)这种匹配出来的就只有一个了,加一个?
正则表达式-匹配A和B之间字符串相关推荐
- 正则表达式匹配非,以及非字符串的匹配
写法介绍 首先,正则表达式的"非",代表不想匹配某个字符. 比如字符串 helloword123,/[^0-9]+/g 可以匹配非数字,即匹配结果为 helloword: 同样的, ...
- leetcode10. 正则表达式匹配 一道没有解释的字符串dp困难题
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 ...
- python正则表达式匹配包含或者不包含字符串的方法
记录下正则匹配包含或者不包含字符串的表达式 import time import refindStr = 'setAttr ".uvst[0].uvsn" -type " ...
- 正则表达式匹配全是标点符号的字符串
^[^a-zA-Z0-9\u4e00-\u9fa5]+$ 可以在线测试:https://c.runoob.com/front-end/854/.
- js正则表达式匹配字符串与优化过程
前言 有时候需要实现对js源文件中的url字符串做拦截预处理,或者前端js语法高亮,或者需要对动态加载的关键源码做混淆保护,在某些步骤实现之前,有一个步骤是需要提炼出所有的合法字符串. 目标:检测源文 ...
- vim替换字符串带斜杠_Vim:正则表达式匹配一个字符串
到目前为止,所有给出的答案对我来说都是错误的,因为它们执行的是贪婪匹配.在多次出现"否"的行中,它们将匹配最后一个: YES YES YES YES no YES YES no Y ...
- 正则表达式匹配不包含某些字符串的技巧
这篇文章主要介绍了正则表达式匹配不包含某些字符串的技巧,详细分解了应该怎么做和这么做的原因,需要的朋友可以参考下 经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^ ...
- 正则表达式-提取开头和结尾之间的字符串
正则表达式-提取开头和结尾之间的字符串 正则表达式测试网站:http://tool.oschina.net/regex/ 测试字符串:"开始A123结束" 提取开头和结尾之间的字符 ...
- python3正则表达式匹配但不包括最后一个字符_正则表达式匹配不包含某些字符串的技巧...
经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤"hede"字串,但这种写法是错误的.我们可以这样写:[^hede],但这样 ...
最新文章
- MySQL如何快速插入数据
- 「一夜白头」有科学依据了,减压可返黑 | 哥伦比亚大学最新研究
- LeetCode Pascal's Triangle II
- 查看/清除 本地电脑/浏览器缓存?
- 提高PHP代码质量需要注意的地方三
- 对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作
- (转)goldengate 复制进程replicat出现ORA-01403 错误
- dubbo内置哪几种服务容器_Dubbo服务提供者几种启动方式
- 为何要进行软件维护?维护的种类及目标?
- 中国摊铺机(车辆)市场趋势报告、技术动态创新及市场预测
- Linux 命令(137)—— strace 命令
- oracle解析关闭,oracle起动和关闭详解(转)
- 【发布】Arknights(明日方舟)拆包+桌面精灵
- 推荐10款最好的免费项目管理工具
- 黑马程序员——递归与枚举
- 盘点安卓手机被吐槽最多的三大奇葩设计
- 程序员学金融-金融科普(4)-净资产收益率
- android 坐标度分秒转换工具,百度地图API详解之坐标系转换
- 终于知道程序员为什么总是带个耳机了!
- 阿里云ECS学习资源