⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000002.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;cybergene&nbsp;(基因~也许以后~~),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;New&nbsp;Regular&nbsp;Expression&nbsp;Features&nbsp;in&nbsp;Tcl&nbsp;8.1&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Dec&nbsp;14&nbsp;15:56:19&nbsp;2000)&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>New&nbsp;Regular&nbsp;Expression&nbsp;Features&nbsp;in&nbsp;Tcl&nbsp;8.1&nbsp;<BR>&nbsp;&nbsp;<BR>TclPro&nbsp;Extensions&nbsp;|&nbsp;Wrap&nbsp;TclPro&nbsp;|&nbsp;Compile&nbsp;Tcl&nbsp;|&nbsp;Stub&nbsp;Libraries&nbsp;|&nbsp;Threads&nbsp;<BR>&nbsp;|&nbsp;Windows&nbsp;Extensions&nbsp;|&nbsp;Regular&nbsp;Expressions&nbsp;|&nbsp;I18N&nbsp;&nbsp;<BR>&nbsp;<BR>Tcl&nbsp;8.1&nbsp;now&nbsp;handles&nbsp;advanced&nbsp;regular&nbsp;expressions&nbsp;(REs).&nbsp;Previous&nbsp;regular&nbsp;<BR>&nbsp;expression&nbsp;handling&nbsp;is&nbsp;almost&nbsp;unchanged&nbsp;except&nbsp;that&nbsp;clumsy&nbsp;handling&nbsp;&nbsp;<BR>of&nbsp;escapes&nbsp;like&nbsp;\n&nbsp;has&nbsp;been&nbsp;much&nbsp;improved,&nbsp;and&nbsp;a&nbsp;few&nbsp;escapes&nbsp;that&nbsp;were&nbsp;&nbsp;<BR>previously&nbsp;legal&nbsp;(but&nbsp;useless)&nbsp;now&nbsp;won't&nbsp;work.&nbsp;&nbsp;<BR>&nbsp;<BR>Note&nbsp;that&nbsp;a&nbsp;few&nbsp;advanced&nbsp;features&nbsp;aren't&nbsp;useful&nbsp;yet&nbsp;but&nbsp;are&nbsp;ready&nbsp;for&nbsp;&nbsp;<BR>future&nbsp;Tcl&nbsp;releases.&nbsp;That's&nbsp;because&nbsp;Tcl&nbsp;8.1&nbsp;(apart&nbsp;from&nbsp;the&nbsp;regular&nbsp;&nbsp;<BR>expression&nbsp;engine)&nbsp;implements&nbsp;only&nbsp;the&nbsp;Unicode&nbsp;locale&nbsp;(where&nbsp;all&nbsp;&nbsp;<BR>characters&nbsp;sort&nbsp;in&nbsp;Unicode&nbsp;order,&nbsp;there&nbsp;are&nbsp;no&nbsp;multi-character&nbsp;collating&nbsp;<BR>&nbsp;elements&nbsp;and&nbsp;no&nbsp;equivalence&nbsp;classes).&nbsp;&nbsp;<BR>&nbsp;<BR>This&nbsp;document&nbsp;has&nbsp;an&nbsp;overview&nbsp;of&nbsp;the&nbsp;new&nbsp;regular&nbsp;expression&nbsp;features.&nbsp;&nbsp;<BR>For&nbsp;exact&nbsp;semantics&nbsp;and&nbsp;more&nbsp;details,&nbsp;see&nbsp;the&nbsp;new&nbsp;re_syntax(n)&nbsp;reference&nbsp;<BR>&nbsp;page.&nbsp;(The&nbsp;re_syntax(n)&nbsp;page&nbsp;was&nbsp;split&nbsp;from&nbsp;the&nbsp;8.1&nbsp;regexp(n)&nbsp;reference&nbsp;<BR>&nbsp;page,&nbsp;which&nbsp;used&nbsp;to&nbsp;cover&nbsp;RE&nbsp;syntax&nbsp;for&nbsp;all&nbsp;Tcl&nbsp;commands.)&nbsp;This&nbsp;howto&nbsp;&nbsp;<BR>document&nbsp;covers:&nbsp;&nbsp;<BR>&nbsp;<BR>1.&nbsp;Regular&nbsp;Expression&nbsp;Overview&nbsp;&nbsp;<BR>&nbsp;<BR>What&nbsp;are&nbsp;Regular&nbsp;Expressions?&nbsp;&nbsp;<BR>Regular&nbsp;Expressions&nbsp;in&nbsp;Tcl&nbsp;8.0&nbsp;and&nbsp;Before&nbsp;&nbsp;<BR>Overview&nbsp;of&nbsp;regexp&nbsp;and&nbsp;regsub&nbsp;&nbsp;<BR>Backslash&nbsp;Processing&nbsp;&nbsp;<BR>2.&nbsp;Regular&nbsp;Expressions&nbsp;in&nbsp;Tcl&nbsp;8.1&nbsp;&nbsp;<BR>&nbsp;<BR>Non-Greedy&nbsp;Quantifiers&nbsp;&nbsp;<BR>Backslash&nbsp;Escapes&nbsp;(\xxx)&nbsp;&nbsp;<BR>Bounds&nbsp;({})&nbsp;&nbsp;<BR>Character&nbsp;Classes&nbsp;([:&nbsp;:])&nbsp;&nbsp;<BR>Collating&nbsp;Elements&nbsp;([.&nbsp;.])&nbsp;&nbsp;<BR>Equivalence&nbsp;Classes&nbsp;([=&nbsp;=])&nbsp;&nbsp;<BR>Noncapturing&nbsp;Subpatterns&nbsp;((?:re))&nbsp;&nbsp;<BR>Lookahead&nbsp;Assertions&nbsp;((?=re)&nbsp;and&nbsp;(?!re))&nbsp;&nbsp;<BR>Switches&nbsp;&nbsp;<BR>Options&nbsp;((?xyz)),&nbsp;Directors&nbsp;(***)&nbsp;&nbsp;<BR>3.&nbsp;Summary:&nbsp;Regular&nbsp;Expression&nbsp;changes&nbsp;in&nbsp;Tcl&nbsp;8.1&nbsp;&nbsp;<BR>&nbsp;<BR>Part&nbsp;1.&nbsp;Regular&nbsp;Expression&nbsp;Overview&nbsp;<BR>This&nbsp;Part&nbsp;describes&nbsp;regular&nbsp;expressions&nbsp;(REs),&nbsp;explains&nbsp;REs&nbsp;from&nbsp;Tcl&nbsp;8.0&nbsp;<BR>&nbsp;and&nbsp;before,&nbsp;and&nbsp;describes&nbsp;the&nbsp;Tcl&nbsp;regexp&nbsp;and&nbsp;regsub&nbsp;commands.&nbsp;Part&nbsp;&nbsp;<BR>Two&nbsp;describes&nbsp;the&nbsp;new&nbsp;Tcl&nbsp;8.1&nbsp;REs.&nbsp;&nbsp;<BR>&nbsp;<BR>What&nbsp;are&nbsp;Regular&nbsp;Expressions?&nbsp;<BR>A&nbsp;regular&nbsp;expression,&nbsp;or&nbsp;RE,&nbsp;describes&nbsp;strings&nbsp;of&nbsp;characters&nbsp;(words&nbsp;or&nbsp;&nbsp;<BR>phrases&nbsp;or&nbsp;any&nbsp;arbitrary&nbsp;text).&nbsp;It's&nbsp;a&nbsp;pattern&nbsp;that&nbsp;matches&nbsp;certain&nbsp;&nbsp;<BR>strings&nbsp;and&nbsp;doesn't&nbsp;match&nbsp;others.&nbsp;For&nbsp;example,&nbsp;you&nbsp;could&nbsp;write&nbsp;an&nbsp;RE&nbsp;&nbsp;<BR>to&nbsp;tell&nbsp;you&nbsp;if&nbsp;a&nbsp;string&nbsp;contains&nbsp;a&nbsp;URL&nbsp;(World&nbsp;Wide&nbsp;Web&nbsp;Uniform&nbsp;&nbsp;<BR>Resource&nbsp;Locator,&nbsp;such&nbsp;as&nbsp;<A HREF="http://somehost/somefile.html).">http://somehost/somefile.html).</A>&nbsp;Regular&nbsp;&nbsp;<BR>expressions&nbsp;can&nbsp;be&nbsp;either&nbsp;broad&nbsp;and&nbsp;general&nbsp;or&nbsp;focused&nbsp;and&nbsp;precise.&nbsp;&nbsp;<BR>A&nbsp;regular&nbsp;expression&nbsp;uses&nbsp;metacharacters&nbsp;(characters&nbsp;that&nbsp;assume&nbsp;special&nbsp;<BR>&nbsp;meaning&nbsp;for&nbsp;matching&nbsp;other&nbsp;characters)&nbsp;such&nbsp;as&nbsp;*,&nbsp;[],&nbsp;$&nbsp;and&nbsp;..&nbsp;For&nbsp;&nbsp;<BR>example,&nbsp;the&nbsp;RE&nbsp;[Hh]ello!*&nbsp;would&nbsp;match&nbsp;Hello&nbsp;and&nbsp;hello&nbsp;and&nbsp;Hello!&nbsp;(and&nbsp;&nbsp;<BR>hello!!!!!).&nbsp;The&nbsp;RE&nbsp;[Hh](ello|i)!*&nbsp;would&nbsp;match&nbsp;Hello&nbsp;and&nbsp;Hi&nbsp;and&nbsp;Hi!&nbsp;(and&nbsp;<BR>&nbsp;so&nbsp;on).&nbsp;A&nbsp;backslash&nbsp;(\)&nbsp;disables&nbsp;the&nbsp;special&nbsp;meaning&nbsp;of&nbsp;the&nbsp;following&nbsp;&nbsp;<BR>character,&nbsp;so&nbsp;you&nbsp;could&nbsp;match&nbsp;the&nbsp;string&nbsp;[Hello]&nbsp;with&nbsp;the&nbsp;RE&nbsp;\[Hello\].&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;<BR>Regular&nbsp;Expressions&nbsp;in&nbsp;Tcl&nbsp;8.0&nbsp;and&nbsp;Before&nbsp;<BR>Regular&nbsp;expressions&nbsp;in&nbsp;Tcl&nbsp;8.0&nbsp;and&nbsp;before&nbsp;had&nbsp;the&nbsp;following&nbsp;&nbsp;<BR>metacharacters:&nbsp;.&nbsp;Match&nbsp;any&nbsp;single&nbsp;character&nbsp;(e.g.,&nbsp;m.d&nbsp;matches&nbsp;mad,&nbsp;&nbsp;<BR>mod,&nbsp;m3d,&nbsp;etc.)&nbsp;&nbsp;<BR>[]&nbsp;Bracket&nbsp;expression:&nbsp;Match&nbsp;any&nbsp;one&nbsp;of&nbsp;the&nbsp;enclosed&nbsp;characters&nbsp;(e.g.,&nbsp;&nbsp;<BR>[a-z0-9_]&nbsp;matches&nbsp;a&nbsp;lowercase&nbsp;ASCII&nbsp;letter,&nbsp;a&nbsp;digit,&nbsp;or&nbsp;an&nbsp;underscore)&nbsp;&nbsp;<BR>^&nbsp;Start-of-string&nbsp;anchor:&nbsp;Match&nbsp;only&nbsp;at&nbsp;the&nbsp;start&nbsp;of&nbsp;a&nbsp;string&nbsp;(e.g.,&nbsp;^hi&nbsp;<BR>&nbsp;matches&nbsp;hi&nbsp;and&nbsp;his&nbsp;but&nbsp;not&nbsp;this)&nbsp;&nbsp;<BR>$&nbsp;End-of-string&nbsp;anchor:&nbsp;Match&nbsp;only&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;a&nbsp;string&nbsp;(e.g.,&nbsp;hi$&nbsp;&nbsp;<BR>matches&nbsp;hi&nbsp;and&nbsp;chi&nbsp;but&nbsp;not&nbsp;this)&nbsp;&nbsp;<BR>*&nbsp;Zero-or-more&nbsp;quantifier:&nbsp;makes&nbsp;the&nbsp;previous&nbsp;part&nbsp;of&nbsp;the&nbsp;RE&nbsp;match&nbsp;&nbsp;<BR>zero&nbsp;or&nbsp;more&nbsp;times&nbsp;(e.g.,&nbsp;M.*D&nbsp;matches&nbsp;MD,&nbsp;MAD,&nbsp;MooD,&nbsp;M.D,&nbsp;etc.)&nbsp;&nbsp;<BR>?&nbsp;Zero-or-one&nbsp;quantifier:&nbsp;makes&nbsp;the&nbsp;previous&nbsp;part&nbsp;of&nbsp;the&nbsp;RE&nbsp;match&nbsp;zero&nbsp;&nbsp;<BR>or&nbsp;one&nbsp;time&nbsp;(e.g.,&nbsp;hi!?&nbsp;matches&nbsp;hi&nbsp;or&nbsp;hi!)&nbsp;&nbsp;<BR>+&nbsp;One-or-more&nbsp;quantifier:&nbsp;makes&nbsp;the&nbsp;previous&nbsp;part&nbsp;of&nbsp;the&nbsp;RE&nbsp;match&nbsp;one&nbsp;or&nbsp;<BR>&nbsp;more&nbsp;times&nbsp;(e.g.,&nbsp;hi!+&nbsp;matches&nbsp;hi!&nbsp;or&nbsp;hi!!&nbsp;or&nbsp;hi!!!&nbsp;or&nbsp;...)&nbsp;&nbsp;<BR>|&nbsp;Alternation&nbsp;(vertical&nbsp;bar):&nbsp;Match&nbsp;just&nbsp;one&nbsp;alternative&nbsp;(e.g.,&nbsp;&nbsp;<BR>this|that&nbsp;matches&nbsp;this&nbsp;or&nbsp;that)&nbsp;&nbsp;<BR>()&nbsp;Subpattern:&nbsp;Group&nbsp;part&nbsp;of&nbsp;the&nbsp;RE.&nbsp;Many&nbsp;uses,&nbsp;such&nbsp;as:&nbsp;<BR>Makes&nbsp;a&nbsp;quantifier&nbsp;apply&nbsp;to&nbsp;a&nbsp;group&nbsp;of&nbsp;text&nbsp;(e.g.,&nbsp;([0-9A-F][0-9A-F])+&nbsp;&nbsp;<BR>matches&nbsp;groups&nbsp;of&nbsp;two&nbsp;hexadecimal&nbsp;digits:&nbsp;A9&nbsp;or&nbsp;AB03&nbsp;or&nbsp;8A6E00,&nbsp;but&nbsp;&nbsp;<BR>not&nbsp;A&nbsp;or&nbsp;A2C).&nbsp;<BR>Set&nbsp;limits&nbsp;for&nbsp;alternation&nbsp;(e.g.,&nbsp;&quot;Eat&nbsp;(this|that)!&quot;&nbsp;matches&nbsp;&quot;Eat&nbsp;this!&quot;&nbsp;<BR>&nbsp;or&nbsp;&quot;Eat&nbsp;that!&quot;).&nbsp;<BR>Used&nbsp;for&nbsp;subpattern&nbsp;matching&nbsp;in&nbsp;the&nbsp;regexp&nbsp;and&nbsp;regsub&nbsp;commands.&nbsp;<BR>&nbsp;&nbsp;<BR>\&nbsp;Escape:&nbsp;Disables&nbsp;meaning&nbsp;of&nbsp;the&nbsp;following&nbsp;metacharacter&nbsp;(e.g.,&nbsp;a\.*&nbsp;&nbsp;<BR>matches&nbsp;a&nbsp;or&nbsp;a.&nbsp;or&nbsp;a..&nbsp;or&nbsp;etc.).&nbsp;Note&nbsp;that&nbsp;\&nbsp;also&nbsp;has&nbsp;special&nbsp;meaning&nbsp;to&nbsp;<BR>&nbsp;the&nbsp;Tcl&nbsp;interpreter&nbsp;(and&nbsp;to&nbsp;applications,&nbsp;such&nbsp;as&nbsp;C&nbsp;compilers).&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>The&nbsp;syntax&nbsp;above&nbsp;is&nbsp;supported&nbsp;in&nbsp;Tcl&nbsp;8.1.&nbsp;Tcl&nbsp;8.1&nbsp;also&nbsp;supports&nbsp;advanced&nbsp;<BR>&nbsp;regular&nbsp;expressions&nbsp;(AREs).&nbsp;These&nbsp;powerful&nbsp;expressions&nbsp;are&nbsp;introduced&nbsp;&nbsp;<BR>in&nbsp;more&nbsp;detail&nbsp;in&nbsp;Part&nbsp;Two.&nbsp;Briefly,&nbsp;though,&nbsp;AREs&nbsp;support&nbsp;&nbsp;<BR>backreferences,&nbsp;lookahead,&nbsp;non-greedy&nbsp;matching,&nbsp;many&nbsp;escapes,&nbsp;features&nbsp;&nbsp;<BR>that&nbsp;are&nbsp;useful&nbsp;for&nbsp;internationalization&nbsp;(handling&nbsp;collation&nbsp;elements,&nbsp;&nbsp;<BR>equivalence&nbsp;classes&nbsp;and&nbsp;character&nbsp;classes),&nbsp;and&nbsp;much&nbsp;more.&nbsp;&nbsp;<BR>&nbsp;<BR>The&nbsp;Tcl&nbsp;8.1&nbsp;regular&nbsp;expression&nbsp;engine&nbsp;almost&nbsp;always&nbsp;interprets&nbsp;8.0-style&nbsp;<BR>&nbsp;REs&nbsp;correctly.&nbsp;In&nbsp;the&nbsp;few&nbsp;cases&nbsp;that&nbsp;it&nbsp;doesn't,&nbsp;and&nbsp;when&nbsp;the&nbsp;problem&nbsp;&nbsp;<BR>is&nbsp;too&nbsp;difficult&nbsp;to&nbsp;fix,&nbsp;the&nbsp;8.1&nbsp;engine&nbsp;has&nbsp;an&nbsp;option&nbsp;to&nbsp;select&nbsp;8.0&nbsp;&nbsp;<BR>(&quot;ERE&quot;)&nbsp;interpretation.&nbsp;&nbsp;<BR>&nbsp;<BR>Overview&nbsp;of&nbsp;regexp&nbsp;and&nbsp;regsub&nbsp;<BR>The&nbsp;Tcl&nbsp;commands&nbsp;regexp&nbsp;and&nbsp;regsub&nbsp;use&nbsp;regular&nbsp;expressions:&nbsp;&nbsp;<BR>regexp&nbsp;compares&nbsp;a&nbsp;string&nbsp;to&nbsp;an&nbsp;RE.&nbsp;It&nbsp;returns&nbsp;a&nbsp;value&nbsp;of&nbsp;1&nbsp;if&nbsp;the&nbsp;RE&nbsp;&nbsp;<BR>matches&nbsp;part&nbsp;or&nbsp;all&nbsp;of&nbsp;the&nbsp;string&nbsp;or&nbsp;0&nbsp;if&nbsp;there's&nbsp;no&nbsp;match.&nbsp;Optionally,&nbsp;<BR>&nbsp;it&nbsp;stores&nbsp;the&nbsp;matched&nbsp;part&nbsp;of&nbsp;the&nbsp;string&nbsp;in&nbsp;a&nbsp;variable&nbsp;(and&nbsp;also&nbsp;can&nbsp;&nbsp;<BR>store&nbsp;subparts&nbsp;of&nbsp;a&nbsp;string&nbsp;in&nbsp;multiple&nbsp;variables).&nbsp;For&nbsp;example,&nbsp;to&nbsp;&nbsp;<BR>compare&nbsp;the&nbsp;string&nbsp;in&nbsp;$line&nbsp;against&nbsp;the&nbsp;RE&nbsp;[Hh]ello!*,&nbsp;you&nbsp;would&nbsp;write:&nbsp;<BR>&nbsp;&nbsp;<BR>regexp&nbsp;{[Hh]ello!*}&nbsp;$line&nbsp;match&nbsp;<BR>If&nbsp;part&nbsp;or&nbsp;all&nbsp;of&nbsp;the&nbsp;line&nbsp;variable&nbsp;matches&nbsp;the&nbsp;RE,&nbsp;regexp&nbsp;stores&nbsp;the&nbsp;&nbsp;<BR>matching&nbsp;part&nbsp;in&nbsp;the&nbsp;match&nbsp;variable&nbsp;and&nbsp;returns&nbsp;a&nbsp;value&nbsp;of&nbsp;1.&nbsp;&nbsp;<BR>&nbsp;<BR>regsub&nbsp;substitutes&nbsp;part&nbsp;of&nbsp;a&nbsp;string&nbsp;that&nbsp;matches&nbsp;an&nbsp;RE.&nbsp;For&nbsp;instance,&nbsp;&nbsp;<BR>the&nbsp;following&nbsp;command&nbsp;edits&nbsp;the&nbsp;string&nbsp;from&nbsp;$in_line&nbsp;to&nbsp;replace&nbsp;all&nbsp;&nbsp;<BR>space&nbsp;or&nbsp;tab&nbsp;characters&nbsp;with&nbsp;a&nbsp;single&nbsp;space&nbsp;character;&nbsp;the&nbsp;edited&nbsp;line&nbsp;&nbsp;<BR>is&nbsp;stored&nbsp;in&nbsp;the&nbsp;out_line&nbsp;variable:&nbsp;&nbsp;<BR>regsub&nbsp;-all&nbsp;{[&nbsp;\t]+}&nbsp;$in_line&nbsp;{&nbsp;}&nbsp;out_line&nbsp;<BR>Please&nbsp;also&nbsp;read&nbsp;the&nbsp;following&nbsp;section&nbsp;about&nbsp;backslash&nbsp;processing.&nbsp;&nbsp;<BR>&nbsp;<BR>Backslash&nbsp;Processing&nbsp;<BR>If&nbsp;you've&nbsp;used&nbsp;Tcl,&nbsp;you&nbsp;probably&nbsp;recognize&nbsp;the&nbsp;\t&nbsp;in&nbsp;the&nbsp;previous&nbsp;&nbsp;<BR>example&nbsp;as&nbsp;a&nbsp;character-entry&nbsp;escape&nbsp;that&nbsp;stands&nbsp;for&nbsp;a&nbsp;tab&nbsp;character.&nbsp;&nbsp;<BR>We&nbsp;actually&nbsp;used&nbsp;the&nbsp;8.1&nbsp;syntax&nbsp;above;&nbsp;the&nbsp;example&nbsp;wouldn't&nbsp;have&nbsp;&nbsp;<BR>worked&nbsp;under&nbsp;8.0!&nbsp;In&nbsp;Tcl&nbsp;8.0&nbsp;and&nbsp;before,&nbsp;you&nbsp;had&nbsp;to&nbsp;surround&nbsp;the&nbsp;regular&nbsp;<BR>&nbsp;expression&nbsp;with&nbsp;double&nbsp;quotes&nbsp;so&nbsp;the&nbsp;Tcl&nbsp;backslash&nbsp;processor&nbsp;could&nbsp;&nbsp;<BR>convert&nbsp;the&nbsp;\t&nbsp;to&nbsp;a&nbsp;literal&nbsp;tab&nbsp;character.&nbsp;The&nbsp;square&nbsp;brackets&nbsp;had&nbsp;to&nbsp;be&nbsp;<BR>&nbsp;hidden&nbsp;from&nbsp;the&nbsp;backslash&nbsp;processor&nbsp;by&nbsp;adding&nbsp;backslashes&nbsp;before&nbsp;them,&nbsp;<BR>&nbsp;which&nbsp;made&nbsp;code&nbsp;harder&nbsp;to&nbsp;read&nbsp;and&nbsp;possibly&nbsp;more&nbsp;error-prone.&nbsp;Here's&nbsp;&nbsp;<BR>the&nbsp;previous&nbsp;example&nbsp;rewritten&nbsp;for&nbsp;Tcl&nbsp;8.0&nbsp;and&nbsp;before:&nbsp;&nbsp;<BR>&nbsp;<BR>regsub&nbsp;-all&nbsp;&quot;\[&nbsp;\t\]+&quot;&nbsp;$in_line&nbsp;{&nbsp;}&nbsp;out_line&nbsp;<BR>For&nbsp;more&nbsp;about&nbsp;the&nbsp;simplified&nbsp;8.1&nbsp;syntax,&nbsp;see&nbsp;the&nbsp;section&nbsp;Backslash&nbsp;&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -