标签: regex-greedy

474
推荐指数
11
解决办法
22万
查看次数

如何让我的比赛在vim中不贪婪?

我有一个很大的HTML文件,有很多标记,如下所示:

<p class="MsoNormal" style="margin: 0in 0in 0pt;">
  <span style="font-size: small; font-family: Times New Roman;">stuff here</span>
</p>
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行Vim搜索和替换以摆脱所有class="",style=""但我无法完成匹配.

我的第一次尝试是这样的

%s/style=".*?"//g
Run Code Online (Sandbox Code Playgroud)

但Vim似乎并不喜欢?.不幸的是,删除?使得比赛过于贪婪.

我如何才能使我的比赛不合适?

regex vim regex-greedy

469
推荐指数
7
解决办法
11万
查看次数

在sed中非贪婪(不情愿)的正则表达式匹配?

我正在尝试使用sed清理URL行以仅提取域名..

所以来自:

http://www.suepearson.co.uk/product/174/71/3816/
Run Code Online (Sandbox Code Playgroud)

我想要:

http://www.suepearson.co.uk/

(有或没有火车斜线,没关系)

我试过了:

 sed 's|\(http:\/\/.*?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)

和(逃避非贪婪量词)

sed 's|\(http:\/\/.*\?\/\).*|\1|'
Run Code Online (Sandbox Code Playgroud)

但我似乎无法使非贪婪量词工作,所以它总是最终匹配整个字符串.

regex pcre sed greedy regex-greedy

393
推荐指数
10
解决办法
23万
查看次数

贪婪与不情愿与占有量词

我发现这个关于正则表达式的优秀教程,虽然我直观地理解"贪婪","不情愿"和"占有欲"量词的作用,但我的理解似乎存在严重漏洞.

具体来说,在以下示例中:

Enter your regex: .*foo  // greedy quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.

Enter your regex: .*?foo  // reluctant quantifier
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.

Enter your regex: .*+foo // possessive quantifier
Enter …
Run Code Online (Sandbox Code Playgroud)

regex regex-greedy

342
推荐指数
5
解决办法
9万
查看次数

我如何编写一个与非贪婪相匹配的正则表达式?

我需要有关非贪婪选项的正则表达式匹配的帮助.

匹配模式是:

<img\s.*>
Run Code Online (Sandbox Code Playgroud)

要匹配的文字是:

<html>
<img src="test">
abc
<img
  src="a" src='a' a=b>
</html>
Run Code Online (Sandbox Code Playgroud)

我在http://regexpal.com上测试

此表达式匹配从<img最后到的所有文本>.我需要它与>初始后遇到的第一个匹配<img,所以在这里我需要得到两个匹配而不是我得到的匹配.

我尝试了所有非贪婪的?组合,没有成功.

regex non-greedy regex-greedy

315
推荐指数
3
解决办法
31万
查看次数

如何使正则表达式成为非贪婪的?

我正在使用jQuery.我有一个带有特殊字符块的字符串(开头和结尾).我想从特殊字符块中获取文本.我使用正则表达式对象进行字符串查找.但是,当有两个特殊字符或更多时,如何告诉jQuery找到多个结果?

我的HTML:

<div id="container">
    <div id="textcontainer">
     Cu?c chi?n pháp lý gi?a [|c? th?|nghi?m|] th? tr??ng [|test2|?ây là test l?n 2|] ch?ng khoán [|M?|day la nuoc my|] và ngân hàng ??u t? quy?n l?c nh?t Ph? Wall m?i ch? b?t ??u.
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

和我的JavaScript代码:

$(document).ready(function() {
  var takedata = $("#textcontainer").text();
  var test = 'abcd adddb';
  var filterdata = takedata.match(/(\[.+\])/);

  alert(filterdata); 

  //end write js 
});
Run Code Online (Sandbox Code Playgroud)

我的结果是:[|cơthử|nghiệm|]thịtrường[| test2 |đâylàtestlần2|]chứngkhoán[|Mỹ| day la nuoc my |].但这不是我想要的结果:(.如何获得[文本]第1次和[演示]第2次?


我在互联网上搜索信息后完成了我的工作^^.我做这样的代码:

var filterdata = takedata.match(/(\[.*?\])/g);
Run Code Online (Sandbox Code Playgroud)
  • 我的结果是:[|cơthử|nghiệm|],[| …

javascript regex expression filter regex-greedy

206
推荐指数
2
解决办法
11万
查看次数

如何在grep中进行非贪婪的比赛?

我想grey最短的比赛,模式应该是这样的:

<car ... model=BMW ...>
...
...
...
</car>
Run Code Online (Sandbox Code Playgroud)

...表示任何字符,输入是多行.

regex shell command-line grep regex-greedy

166
推荐指数
5
解决办法
11万
查看次数

Python非贪婪的正则表达式

我如何使python正则表达式像"(.*)"这样,给定"a(b)c(d)e"python匹配"b"而不是"b"c(d"?

我知道我可以使用"[^)]"而不是".",但我正在寻找一种更通用的解决方案,让我的正则表达式更清洁.有没有办法告诉python"嘿,尽快匹配"?

python regex regex-greedy

133
推荐指数
6
解决办法
8万
查看次数

有什么区别.*?和.*正则表达式?

我正在尝试使用正则表达式将字符串分成两部分.字符串格式如下:

text to extract<number>
Run Code Online (Sandbox Code Playgroud)

我一直在使用(.*?)<,<(.*?)>哪个工作正常,但在阅读了一点regex之后,我才开始想知道为什么我需要?表达式中的.我通过这个网站找到它们之后才这样做,所以我不确定它们之间的区别.

regex regex-greedy

126
推荐指数
3
解决办法
9万
查看次数

Notepad ++非贪婪的正则表达式

Notepad ++是否支持非贪婪的正则表达式?

例如文字:

abcxadc
Run Code Online (Sandbox Code Playgroud)

我想用模式获取零件:

a.+c
Run Code Online (Sandbox Code Playgroud)

现在我得到整个字符串而不是2个部分.我试过用'?' 运营商但没有成功.

regex notepad++ regex-greedy

57
推荐指数
3
解决办法
3万
查看次数