non-greedy相关内容

.* 和有什么不一样?和 .* 正则表达式?

我正在尝试使用正则表达式将字符串分成两部分.字符串格式如下: 要提取的文本 我一直在使用 (.*?) ,它们工作正常,但在阅读正则表达式后,我刚开始想知道为什么我需要在表达式中使用 ?.我只是在通过本网站找到它们后才这样做的,所以我不确定有什么区别. 解决方案 这是贪婪量词和非贪婪量词的区别. 考虑输入 101000000000100. 使用1.*1, ..
发布时间:2021-12-02 23:15:47 其他开发

贪婪/懒惰(非贪婪)/占有量词在内部如何工作?

我注意到有 3 类不同的量词:贪婪、懒惰(即非贪婪)和占有欲. 我知道,笼统地说,贪婪量词会尝试通过首先读取整个输入字符串来获得最长匹配,然后在尝试不断失败时逐个截断字符;lazy 量词尝试通过首先读取空字符串来获得最短匹配,如果尝试一直失败,然后一个一个地添加字符;占有量词尝试与贪婪量词相同的方式,但如果第一次尝试失败,它们将停止匹配. 但是,我不确定上述内容是如何在“内部"实施的, ..
发布时间:2021-07-06 20:21:25 其他开发

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

为什么我的regex模式不偷懒?它应该捕获第一个数字,而不是第二个. 这是一个有效的bash脚本. #!/bin/bashtext ='这是一些我想与word1匹配的示例文本,这个数字3.01& nbsp; GiB这里是一些额外的文本,另一个数字1.89& nbsp; GiB'regex ='(word1 | word2).*?number [[:空白:]]([0-9.] +)& nbsp ..
发布时间:2021-04-14 20:49:27 其他开发

Java Regexp:UNGREEDY标志

我想将通用文本处理工具 Texy!从PHP移植到Java 此工具使用preg_match_all("/.../U")进行不匹配的匹配. 所以我正在寻找一个带有UNGREEDY标志的库. 我知道我可以使用.*?语法,但是确实有很多正则表达式需要覆盖,并使用每个更新的版本进行检查. 我已经检查了 ORO-似乎被遗弃了 雅加达正则表达式-不支持 java.util.regex ..
发布时间:2020-07-01 19:54:02 Java开发

Python正则表达式中的非贪婪

我尝试了解python中的非贪婪正则表达式,但我不明白为什么以下示例具有此结果: print(re.search('a??b','aaab').group()) ab print(re.search('a*?b','aaab').group()) aaab 我认为第一个为'b',第二个为'ab'. 谁能解释一下? 解决方案 之所以会发生这种情况,是因为您要求匹配的是之后.如果您尝 ..
发布时间:2020-07-01 19:52:49 Python

Perl非贪婪问题

我对非贪婪的正则表达式有疑问.我已经看到有一些关于非贪婪正则表达式的问题,但它们并不能解决我的问题. 问题::我正在尝试匹配“大声笑"锚点的href. 注意::我知道可以使用perl HTML解析模块来完成此操作,而我的问题是不关于在perl中解析HTML.我的问题是关于正则表达式本身,而HTML只是一个例子. 测试用例::我有4个针对.*?和[^"]的测试. 2先产生预期的结果 ..
发布时间:2020-07-01 19:52:47 其他开发

sed在第二次出现时替换

我只想在第二次出现时用sed删除模式.这就是我想要的,删除模式但第二次出现. file.csv中包含什么: a,Name(null)abc.csv,c,d,Name(null)abc.csv,f a,Name(null)acb.csv,c,d,Name(null)acb.csv,f a,Name(null)cba.csv,c,d,Name(null)cba.csv,f 想要的输出: ..
发布时间:2020-07-01 19:52:45 其他开发

正则表达式贪婪仅在左侧(.net)

我正在尝试捕获两个字符串之间的匹配项. 例如,我正在寻找使用“最快"匹配(不继续向外扩展)出现在Q和XYZ之间的所有文本.该字符串: 马戏团Q你好, Q SOMETEXT XYZ 今天是XYZ好的一天XYZ 应返回: Q SOMETEXT XYZ 但是,它返回: Q你好,Q SOMETEXT XYZ 这是我正在使用的表达式: Q.*?XYZ 它向左退 ..
发布时间:2020-07-01 19:51:37 C#/.NET

正则表达式不贪心就是贪婪

我有以下文字 tooooooooooooon 根据我正在阅读的这本书,当?出现在任何量词之后时,它就变得不贪婪. 我的正则表达式to*?n仍返回tooooooooooooon. 它应该返回ton不是吗? 知道为什么吗? 解决方案 正则表达式只能匹配实际存在的文本片段. 因为子字符串"ton"在字符串中不存在,所以不能是匹配的结果.匹配项只会返回原始字符串的 ..
发布时间:2020-07-01 19:51:30 其他开发

提取方括号"[]"之间的数据使用Perl

我正在使用正则表达式从弧形括号(或“括号")中提取数据,就像从(a,b)中提取a,b一样,如下所示.我有一个文件,其中每一行都会像 this is the range of values (a1,b1) and [b1|a1] this is the range of values (a2,b2) and [b2|a2] this is the range of values (a3,b3) ..
发布时间:2020-07-01 19:51:25 其他开发