正则表达式如何匹配出最短字符串

作者&投稿:吁萧 (若有异议请与网页底部的电邮联系)
正则表达式如何匹配字符串中的所有()之间的字符串。~

哎、这个测试好久!在perl里面简直机关重重啊、看结果:
[u@H /billing/user/xufc/pp]$perl
my $line='abc(@a)defghi(@b)aaaaa'; #要用单引号、双引号perl就先给你认为括号里面为空
my @array=($line =~ m/\((.*?)\)/g) ; #语法叫“列表上下文中的m//”,匹配(XX),然后提取出XX
print "@array
"; #输入完成后、按ctrl+D代表程序结束
@a @b #输出的结果
[u@H /billing/user/xufc/pp]$

这个是perl里面的,其它语言不知道怎么用

你对正则表达式的理解可能存在误区,用[ ]括起来的是匹配任意字符,根据你的要求,应该是想要匹配所有以abc开始,以.zip结束的字符,写法应该是这样(abc).+(\.zip)。
在方括号[ ]中,除了^,-,一切特殊符号全部失效,你的[^abc.*?.zip]这个正则表达式,实际意思是,匹配除了a,b,c,.,*,?,z,i,p之外的一切字符

  • 当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

  • 有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:

  • a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。

  • 为什么第一个匹配是aab(第一到第三个字符)而不是ab(第二到第三个字符)?简单地说,因为正则表达式有另一条规则,比懒惰/贪婪规则的优先级更高:最先开始的匹配拥有最高的优先权——The match that begins earliest wins。



1、匹配(xxxxxxxxxx)
\([^()]*\)
2、匹配(xxxxxxxxxx)xxxxxxxxx)
就可以用你写的
\(.*\)


如何查找正则表达式
Notepad中的正则表达式可以使用“Find”功能来实现。如果你想匹配一个字符串中包含特定字符或数字,可以使用以下正则表达式:匹配数字:\\d+ 匹配非数字:\\D+ 匹配字母或数字:[a-zA-Z0-9]+ 匹配任意字符:.匹配重复字符:{n}(其中n为重复次数)匹配重复字符至少n次:{n,} 匹配重复字符至多n次:{...

正则表达式中两个不同的匹配条件怎么在一条语句里执行
1、打开sublime text3编辑器,新建一个py文件。import re,也就是引入regular expression正则表达式库。2、test = re.compile(r'\\*')print(test.findall("666*888"))如果要匹配星号,只需要在前面加上反斜杠。3、如果不加上反斜杠就会出现错误。4、test = re.compile(r'[*]')另一种方法就是...

notepad++正则表达式 字符串详解
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮 其中,符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。 【2】正则表达式应用——数字替换 希望把 asdadas123as...

js正则表达式用法
js正则表达式的用法是什么呢?不知道的小伙伴来看看小编今天的分享吧!1、正则表达式简介:普通方式:var reg=\/表达式\/附加参数附件参数:g:代表可以进行全局匹配。i:代表不区分大小写匹配。m:代表可以进行多行匹配。上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。举例:var reg=\/a*...

用正则表达式如何匹配字符串中包含@{key}@,且提取出key这个字符?
正则如下:let str = '@{key}@'\/@{(\\w*?)}@\/.exec(str)[1]

正则表达式如何对数学方程进行匹配?
1.表达式正确 2.去掉括号表达式为:3*5*25+2*5*25-7*25+1=3+7*X

正则表达式匹配或
图五:匹配所有Moth DD,YYYY格式的日期新出现的“s”符号是空白符号,匹配所有的空白字符,包括Tab字符。如果字符串正确匹配,接下来如何提取出月份部分呢?只需在月份周围加上一个圆括号创建一个组,然后用ORO API(本文后面详细讨论)提取出它的值。修改后的正则表达式如图六所示: 图六:匹配所有Month DD,YYYY格式的...

正则表达式如何满足多行和跨行匹配?
正则:dog.+cat .+:任意字符,1或多个 或 dog.*cat .*:任意字符:0或多个 即dog和cat之间允许没有任何字符,此写法都匹配 且加上多行的参数是:Python:re.S = re.DOTALL 完整代码:(百度知道的编辑器中竟然不能输入代码,鄙视👎之)"""Function;正则表达式如何满足多行和跨行匹配...

正则表达式中匹配javascript这样整个字符串如何写,还有@,#,$,等等...
1、如果字符串不是特殊字符。那么直接写就可以,比如在一个字符串中匹配某个单词:var str = "javascrip book contains java and other ... ";匹配单词java可以这样 \/java\/g 2、@,#,$等标点也是这个原理,看是不是特殊字符,就比如这三个,@和#可以直接写,而$是特殊字符,需要转义处理,在...

如何用正则表达式在JS中匹配出相应的拓展名?
\/\/ 下面的代码取出扩展名 var reg = \/\\.[^\\\\.\\\/]+\/i;var filename = "abc.flv";if(reg.test(filename)){ alert(RegExp.$1);} \/\/ 下面的代码匹配指定扩展名 var reg = \/\\.(flv|3gp|rmvb|rm|swf)\/i;var filename = "abc.flv";if(reg.test(filename)){ alert("匹配通过")...

莆田市19334056653: 正则表达式如何匹配出最短字符串 -
直胁优福: 当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串.如果用它来搜索aabab的话,它会匹配整个字符...

莆田市19334056653: 如何让正则表达式最小匹配 -
直胁优福: 加?号即可 比如说字符串 aabab 什么都不加,默认贪婪模式 a.*b 能匹配abab 非贪婪模式,加?号 a.*?b能匹配aab和ab

莆田市19334056653: 正则表达式 最短匹配问题 -
直胁优福: echo 1abcxxxxxxxx2abcyyyyyyy3abczzzzzzzz | grep -oE '[0-9]?abc[a-z]*'ubuntu下正确通过!哈哈.

莆田市19334056653: python 正则表达式,怎么才能最小匹配? -
直胁优福: 把imgMatchs改成imgMatchs = re.finditer(r'\[.+?\]', s) 可以得出:(3, 6)(14, 17) rre = re.compile(r'(.+?)(\[.+?\])(.+?)(\[.+?\])(.+)') rre.findall(s) 可以得到 [('fds', '[d]', 'fsfsdafd', '[c]', 'safdsfsd')] 转换一下就可以满足要求了.

莆田市19334056653: 用正则表达式怎样匹配 不包含特定字符串的字符串 -
直胁优福: 正则表达式匹配公式为:1. ^((?!XXX).)*$,XXX为字符串.2. 另外列举一些正则表达式的语法: [abc] a或b或c . 任意单个字符 a? 零个或一个a [^abc] 任意不是abc的字符 \s 空格 a* 零个或多个a [a-z] a-z的任意字符 \S 非空格 a+ 一个或多个a [a-zA-Z] 拓展资料:1. 字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数.

莆田市19334056653: 怎样使用正则表达式匹配某个字符串 -
直胁优福: 是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式,即/expression/ 普通字符由所有那些未显式指定为元字符的打印和非打印字符组成.这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号.

莆田市19334056653: 正则表达式字符串匹配规则 -
直胁优福: 如果将 String testStr = "ABCGTYU";改为 String testStr = "ABCG|TYU"; 得到的结果就不一样了 中括号表示字符集,以'^'开头表示否定,所以"[^GC]"表示所有除'G'和'C'以外的字符,因此用replaceal替换成空串,会保留G和C字符"[^G|^C]"表示的是除了'G','|','^','C'四个字符以外的字符,replaceall会保留这四个字符,注意在中括号中'|'就表示'!'这个字符,而不是a或者b的意思

莆田市19334056653: 正则表达式 匹配字符串 -
直胁优福: 正则表达式:^(.?|[^/]{2}.*)(["“].*?["”]) 这里双引号支持英文和中文的双引号 匹配这一行第一个双引号开始到第二个双引号结束的内容 若这一行以//开通则不匹配 匹配成功后取第2组的值即为所要结果 java 代码示例:public class Test { ...

莆田市19334056653: java怎么用正则表达式截取一段字符串 -
直胁优福: 首先比要知道正则表达式的写法;s.slip("s");//用s来截取字符串片段.s.slip("\\D");//通过非数字来截取字符串比如34234jdds434323kds79090dsdd皆可以将字符串竭诚三段

莆田市19334056653: 正则表达式匹配字符串 -
直胁优福: <% 'strng 放置源字串Dim strng:strng="abddd...<h3 class=""r""><a href="" http://www.newmind40.com/ai_gb.htm"" target=_blank class=l onmousedown=""return clk(0,'','','','12','','0CCQQFjABOAo')""><em>好好学习</em></a></h...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网