首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么正则表达式与此文本匹配?

为什么正则表达式与此文本匹配?
EN

Stack Overflow用户
提问于 2014-09-13 20:09:41
回答 3查看 43关注 0票数 0

为什么grep -noE '.*‘匹配

w,来自一组特殊的二元分数,V_i,i= 1,2,\dots,w称为方向数。使用i,G(i)的[格雷码]位来选择方向数。要获得Sobol序列值,s_i采用具有适当方向数的格雷码的二进制值的[排他或]。所需维数影响V_i 37196767的选择:\int_0^1 f(u)\,du \frac{1}{N}\,\sum_{i=1}^N (X_i)。

我只想拥有自己的每一个元素,而不是贪婪。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-13 20:18:06

您需要指定非贪婪版本:.*?,但是grep正则表达式不支持它。

如果使用grep,则可以使用-P选项(或--perl-regexp):

代码语言:javascript
复制
grep -noP '<math>.*?</math>'
票数 3
EN

Stack Overflow用户

发布于 2014-09-13 20:20:17

使用:

代码语言:javascript
复制
grep -noE '<math>[^<]*</math>'

而不是匹配<math></math>之间的任何序列,这将不允许<在序列中,因此它不允许</math>在内部。

它也不允许任何其他标签,但看起来这并不是你的文本的问题。

如果使用的是支持PCRE的工具,则可以使用非贪婪的regexp:

代码语言:javascript
复制
<math>.*?</math>

标准grep不使用PCRE,但如果使用grep,则可以使用-P选项。

票数 2
EN

Stack Overflow用户

发布于 2014-09-13 20:13:12

由于.*是贪婪的,所以它将匹配从第一次发现的<math>到最后找到的</math>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25827224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档