正则表达式 子表达式 匹配的问题

问题描述

以例子说明:字符串:“A=EDB=C=1234ED”构造正则表达式:(A=|B=|C=|D=){1}.+(EA|EB|EC|ED){1}目标是匹配出C=1234ED,但实际上匹配出了A=EDB=C=1234ED请问要如何更改正则表达式呢?谢谢!!!

解决方案

解决方案二:
[ABCD]=[^=]+(EA|EB|EC|ED)
解决方案三:
写正则时要警惕”.*"与".+"
解决方案四:
[ABCD]=[^=]+?E[ABCD]PS:你这正则是体育老师教的么?
解决方案五:
引用3楼q107770540的回复:

[ABCD]=[^=]+?E[ABCD]PS:你这正则是体育老师教的么?

解决方案六:
.+不带?表示贪婪匹配,带?表示懒惰匹配,自己好好看看基本语法,这都是基本语法,微软官网上都有。

时间: 2024-12-27 21:19:10

正则表达式 子表达式 匹配的问题的相关文章

js使用正则子表达式匹配首字母与尾字母相同单词的方法_正则表达式

本文实例讲述了js使用正则子表达式匹配首字母与尾字母相同单词的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head> <script type="text/javascript"> //子表达式实例:找到首字母与尾字母相同的单词 function t1(){  var con = document.getElementsByName('content')[0].value;  var reg = /\b(\w

Delphi中正则表达式之TPerlRegEx类的属性与方法(2) 关于子表达式

// MatchedExpression 与 SubExpressions[0] var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'CodeGear Delphi 2007'; reg.RegEx := 'Delphi'; while reg.MatchAgain do begin ShowMessage(reg.MatchedExpression); //Delphi; 这是匹配到的内容 Show

C++中正则表达式 的 子表达式(subexpressions) 的数据验证

子表达式(subexpressions)的 数据验证(data validation), 可以通过括号"()"分解正则表达式的子表达式; 然后使用下标标示符[], 输出相应的子表达式, "0"代表全体, "1"代表第一个括号, 依次递加; 通过对于问号项?是否匹配, 验证正则表达式的匹配式; 代码: #include <iostream> #include <string> #include <boost/regex

正值表达式匹配html标签的属性值_正则表达式

正则表达式是做文本解析工作必不可少的技能.如Web服务器日志分析,网页前端开发等.很多高级文本编辑器都支持正则表达式的一个子集,熟练掌握正则表达式,经常能够使你的一些工作事半功倍.例如统计代码行数,只需一个正则就搞定.嵌套Html标签的匹配是正则表达式应用中一个比较难的话题,因为它涉及到的正则语法比较多,也比较难.因此也就更有研究的价值. 今天由于工作的需求,需要获取html标签的属性值,立即想到了正则表达式,标签如下: <circle id="ap_test" cx="

正则表达式教程之子表达式用法分析

本文实例讲述了正则表达式教程之子表达式用法.分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的[和]之间,有的例子会使用java来实现,如果是java本身正则表达式的用法,会在相应的地方说明.所有java例子都在JDK1.6.0_13下测试通过. 一.问题引入 首先来看一个例子,有的短语如Windows 2000虽然是多个单词组成,但其实是一个整体,HTML页面中可以使用非换行空格( 即non-breaking space)让它在浏览器中显示在一行上,现在来匹配

Delphi中正则表达式语法(8) 引用子表达式

//准备: 我们先写一个搜索所有英文单词的表达式 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'one two three four five six seven eight nine ten'; reg.RegEx := '\b[A-Za-z]+\b'; //这个表达式就可以找到所有的英文单词 reg.Replacement := '◆'; reg.ReplaceAll; ShowMessag

Delphi中正则表达式语法(7) 匹配转义字符

// ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '你好吗? 还行!'; reg.RegEx := '\?|!'; // 加转义用的 \ reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 你好吗◆ 还行◆ FreeAndNil(reg); en

javascript正则表达式之regexp,匹配string,正则指定字符

exec() 检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回 null: 主要的RegExp模式匹配方法是exec(),其与上一篇介绍的String对象的match方法相似,只不过它是以字符串为参数的RegExp方法,而不是以RegExp对象为参数的字符串方法.呼,这一句有点像绕口令,没办法,书上的原话,抄过来让大家乐一乐,呵.exec()方法在一个字符串中检索匹配,如果没有找到任何匹配返回null,如果它找到了一个匹配,将返回一个数组. 就像方法match()为非全局检索返

正值表达式匹配html标签的属性值

正则表达式是做文本解析工作必不可少的技能.如Web服务器日志分析,网页前端开发等.很多高级文本编辑器都支持正则表达式的一个子集,熟练掌握正则表达式,经常能够使你的一些工作事半功倍.例如统计代码行数,只需一个正则就搞定.嵌套Html标签的匹配是正则表达式应用中一个比较难的话题,因为它涉及到的正则语法比较多,也比较难.因此也就更有研究的价值. 今天由于工作的需求,需要获取html标签的属性值,立即想到了正则表达式,标签如下: <circle id="ap_test" cx="