TCL脚本正则表达式求助

求助达人解释一下
这个正则匹配
regexp {(.+?):(.+)} "abc:123" match
结果是
abc:1

为什么不是
abc:123
第一个“?”也会限制到第二个+吗 ?

再就是
regexp {(.+):(.+?)} "abc:123" match

的匹配结果是abc:123
为什么?

其他的正则不会出现这样的问题,
应该是正则语言或者说正则引擎不同导致的

the ? only works for Perl-based regexp, not for POSIX...
还有参考 贪婪模式的讲解:
http://www.jb51.net/article/31491.htm
温馨提示:内容为网友见解,仅供参考
无其他回答

tcl 正则表达式循环匹配
在perl中\/g并不是一次就全部匹配的,而是从上次匹配的结束处开始尝试新的匹配。猜测Tcl也行 你看看这样行不行(我不会Tcl语法,就当c写了)while($num){ puts [lindex Matchstring i]i++ }

tcl 正则表达式循环匹配
你看看这样行不行(我不会Tcl语法,就当c写了)while($num){ puts [lindex $Matchstring i]i++ }

TCL脚本正则表达式求助
应该是正则语言或者说正则引擎不同导致的 the ? only works for Perl-based regexp, not for POSIX...还有参考 贪婪模式的讲解:http:\/\/www.jb51.net\/article\/31491.htm

Vivado\/Tcl之Tcl基础语法(六)流程控制
在Vivado\/Tcl编程中,流程控制是至关重要的组成部分。首先,if语句用于根据条件执行特定的Tcl脚本。它检查表达式的真假,若为真,则执行后续代码。Tcl解释器通常把换行视为命令分隔,但在花括号或双引号中则不然。if结构可与else和或多的elseif配合,这些并非独立命令,需与if一起使用。switch命令则用于根...

Tcl脚本在IC设计中的应用
在IC设计领域,Tcl主要发挥三大作用:一是强大的文本处理能力,能轻松处理复杂文本,如列表和正则表达式,即使与Perl相比也毫不逊色;二是自动化流程执行,如自动完成设计综合流程,节省大量时间;三是能编写功能强大的EDA工具,如自动生成寄生RC电路的脚本,甚至创建复杂的图形界面工具。实际工作中,Tcl脚本...

tcl怎么换信源
首先,我们可以使用`fileutil::cat`命令将原始信源文件的内容读取到一个变量中。该命令可以方便地读取整个文件,省去了使用`open`和`read`命令的步骤。接下来,我们可以使用`regsub`命令和正则表达式来替换信源字符串中的特定部分。这样,我们可以将数据源从一个信源切换到另一个信源。最后,我们可以使用`...

tcl列表操作lsearch
默认的匹配风格为 -glob ,如果给出了多个匹配风格,那么最后给出的匹配风格有效。-exact pattern 是字符串并且必须严格匹配每一个 list 元素。-glob pattern 是通配风格匹配每一个列表元素,与 string match 命令类似。-regexp pattern 被当作一个正则表达式来匹配列表中的每一个元素,与 re_syntax ...

tcl扫描是什么意思?
Tcl扫描是指使用Tcl编程语言中的scan命令来查找某个字符串中的特定模式或格式。该命令可通过正则表达式、字符集、转义字符、字段宽度和将要读取的对象类型等参数来控制扫描的方式。Tcl扫描在Tcl脚本程序设计中扮演着重要的角色,可以极大地提高程序的执行效率和准确性。通过使用Tcl扫描,程序员可以轻松地处理...

正则表达式为什么结果只有一个的时候 可以匹配出来,多个就不行了,求救...
你的正则表达式中.*用的是贪婪模式所以匹配出来只有一个,加一个问号即.*?变成非贪婪模式就可以匹配出多个了,你的例子中可以匹配两个,因为'><img width=在你的例子中只有两个.总之,把正则表达式改成(?<=href='http:\/\/item.jd.com).*?(?='><img width=)可以匹配两个 把正则表达式改成(?<=...

如何使用正则表达式
正则表达式的引擎已被许多普通的Unix工具所实现,包括grep,awk,vi和Emacs等。此外,许多使用比较广泛的脚本语言也支持正则表达式,比如Python,Tcl,JavaScript,以及最著名的Perl。 我很早以前就是个Perl方面的黑客,如果你和我一样话,你也会非常依赖你手边的这些强大的text-munging工具。近几年来,像其他程序开发者一样,...

相似回答