变量中的tcl长度
如何始终在50个字符之后拆分变量中的文本 那么splitt只在50个字符后的新行中出现吗变量中的tcl长度,tcl,textutils,Tcl,Textutils,如何始终在50个字符之后拆分变量中的文本 那么splitt只在50个字符后的新行中出现吗 set length [::textutil::adjust $text -length 50 -strictlength true] 问候 编辑: 输入是变量$Plot中的文本 LaRochelle, a former pirate captain, is caught by the British. To get his ship back, he works as a spy against ot
set length [::textutil::adjust $text -length 50 -strictlength true]
问候
编辑:
输入是变量$Plot中的文本
LaRochelle, a former pirate captain, is caught by the British. To get his
ship back, he works as a spy against other pirates, first of all Blackbeard
and Providence. He works on some ships, crossing the Caribbean sea, with the
intention
set pieces [regexp -all -inline {.{1,50}} $Plot]
set 0 [lindex [lindex $pieces 0] 0]
set 1 [lindex [lindex $pieces 1] 1]
putnow "PRIVMSG $channel :$0"
输出仅为:
<testbot> LaRochelle,
<testbot> British.
LaRochelle,
英国的。
不幸的是,不再..您可以使用
regsub
在每50个字符后添加换行符
set text [string repeat 123456 48]
set formatted [regsub -all {.{50}} $text "&\n"]
puts $formatted
您可以使用
regsub
在每50个字符后添加一个换行符
set text [string repeat 123456 48]
set formatted [regsub -all {.{50}} $text "&\n"]
puts $formatted
最简单的方法是使用
regexp-all-inline
进行拆分,因为它有一个所有匹配(以及子匹配,如果存在)的列表,这意味着它可以非常直接地提供所需的结果:
set pieces [regexp -all -inline {.{1,50}} $inputString]
RE是{1,50}
(大括号;在Tcl中技术上不需要,但几乎总是一个好主意),这意味着“一到五十个字符,尽可能多(因为贪婪匹配)”,我们可以得到尽可能多的字符
如果要约束到单词边界,最好将RE更改为
\m.{1,50}\m
最简单的方法是使用regexp-all-inline
进行拆分,因为它有一个所有匹配(以及子匹配(如果存在))的列表,这意味着它可以非常直接地提供所需的结果:
set pieces [regexp -all -inline {.{1,50}} $inputString]
RE是{1,50}
(大括号;在Tcl中技术上不需要,但几乎总是一个好主意),这意味着“一到五十个字符,尽可能多(因为贪婪匹配)”,我们可以得到尽可能多的字符
如果您想约束到单词边界,最好将RE改为
\m.{1,50}\m
这是下一行中唯一的拆分吗?对的我需要它在变量中,它不再直接在每个变量后面。中间还有其他东西,这只在下一行分开?对的我需要它在变量中,它不再直接在每个变量后面。当你有一个列表时,你可以用foreach
或[join$pieces”\n]
在元素文本之间用换行符创建一个字符串。一旦你有了一个列表,你可以用foreach
或[join$pieces”\n]在上面迭代
在元素文本之间创建一个带换行符的字符串。您可以得到所需的内容。调用regexp
将文本分成几个50个字符的部分。然后你在第一篇文章中要求第一项,得到“LaRochelle”,在第二篇文章中要求第二项,得到“British”。你还期待什么吗?是的,0-50件,不仅仅是拉罗切拉,这是11件,其余的呢?50件是这样的:LaRochelle,一位前海盗船长,通过查看Pieces
变量中的内容,或者分别使用lindex$Pieces 0
和lindex$Pieces 1
表达式被抓获lindex$pieces 0
例如给你LaRochelle,一位前海盗船长,被
抓获,因为这是pieces
列表中的第一项,因为pieces
是你文本中的片段列表,每个片段最多50个字符。哦,thx,我知道你现在得到了你想要的了。调用regexp
将文本分成几个50个字符的部分。然后你在第一篇文章中要求第一项,得到“LaRochelle”,在第二篇文章中要求第二项,得到“British”。你还期待什么吗?是的,0-50件,不仅仅是拉罗切拉,这是11件,其余的呢?50件是这样的:LaRochelle,一位前海盗船长,通过查看Pieces
变量中的内容,或者分别使用lindex$Pieces 0
和lindex$Pieces 1
表达式被抓获lindex$pieces 0
举例来说,给你LaRochelle,一位前海盗船长,被
抓获,因为这是pieces
列表中的第一项,因为pieces
是你文本中的片段列表,每个片段长达50个字符。哦,我明白了