tcl列表操作lsearch
名稱 lsearch - 在列表中尋找特定元素
語法 lsearch ?options? list pattern
描述 這個命令尋找list中與pattern匹配的元素。如果匹配到了返回第一次找到這個元素的索引(除非指定了-all或-inline),如果沒有匹配到返回-1。可選變元指出了列表的元素怎樣去匹配pattern,可選項如下:
匹配風格可選項
預設的匹配風格為-glob,如果給出了多個匹配風格,那麼最後給出的匹配風格有效。
- -exact
- pattern是字串並且必須嚴格匹配每一個list元素。
- -glob
- pattern是通配風格匹配每一個列表元素,與string match命令類似。
- -regexp
- pattern被當作一個正規表示式來匹配列表中的每一個元素,與re_syntax命令類似。
- -sorted
- 列表元素被排序,如果指定了這個可選項,lsearch將會使用更加有效的查詢演算法去查列表。如果沒有指定其它的可選項,list將被排列成升序並且包含ASCII碼。這個可選項與-glob和-regexp互斥,當指定了-all或-not時與-exact非常象。
一般修飾可選項
這些可選項可以在任何一種匹配風格中給出。
- -all
- 返回一個列表,列表的元素為所有匹配到的索引,返回的索引按照數字順序排列,如果同時指定了-inline返回數值,數值的順序就是在列表中的順序。
- -inline
- 返回匹配到的第一個元素。如果-all也指定了,則返回一個列表,列表的元素為所有匹配到的數值。
- -not
- 與匹配相反,返回第一個不匹配的數值的索引。
- -start index
- 從列表的index個索引開始搜尋。
內容描述可選項
描述如何去解釋在列表中尋找到的元素,只有當-exact和-sorted指定時才有效。如果給出了多個可選項,那麼最後給出的可選項有效。預設為-ascii。
- -ascii
- 列表元素作為Unicode字串來檢查。
- -dictionary
- 列表元素在比較時使用字典關係(檢視lsort以獲取詳細描述),只有當-sorted可選項指定時才有有效。
- -integer
- 列表中的元素被當作整數來處理。
- -nocase
- 忽略大小寫。與-dictionary、-integer和-real搭配無效。
- -real
- 列表中的元素被當作浮點數來處理。
列表排序可選項
這個可選項指定了列表如何排序,只有指定了-sorted時才有效。如果給出了多個可選項,那麼最後給出的可選項有效。
- -decreasing
- 列表元素為降序排列,只有指定了-sorted時才有效。
- -increasing
- 列表元素為升序排列,只有指定了-sorted時才有效。
內嵌列表可選項
這些可選項被用來尋找子列表,可以與任何其它可選項一起使用。
- -index indexList
- 這個可選項尋找內嵌的列表,indexList變元必須給出一個索引列表(與lindex和lset類似),indexList給出的索引列表在list中必須存在對應的索引,否則會出錯。
- -subindices
- 這個可選項只返回尋找到的子列表元素,必須和-index配合使用。
示例
基本搜尋:
lsearch {a b c d e} c
→ 2
lsearch -all {a b c a b c} c
→ 2 5
過濾列表:
lsearch -inline {a20 b35 c47} b*
→ b35
lsearch -inline -not {a20 b35 c47} b*
→ a20
lsearch -all -inline -not {a20 b35 c47} b*
→ a20 c47
lsearch -all -not {a20 b35 c47} b*
→ 0 2
甚至可以做切除操作:
lsearch -all -inline -not -exact {a b c a d e a f g a} a
→ b c d e f g
搜尋從半途開始:
lsearch -start 3 {a b c a b c} c
→ 5
搜尋子列表中的元素:
lsearch -index 1 -all -inline {{a abc} {b bcd} {c cde}} *bc*
→ {a abc} {b bcd}
轉自:http://blog.csdn.net/dulixin/article/details/2185458
相關文章
- TCL: LIST命令-lsearch, lsort, lrange
- 使用Tcl操作Excel檔案的方法Excel
- 列表巢狀操作巢狀
- 列表及相關操作
- Python列表切片操作Python
- RxJava操作符列表RxJava
- 例2.3 列表操作示例
- Python列表操作方法Python
- python中的列表操作Python
- Python 列表操作指南1Python
- Python 列表操作指南3Python
- Python元組、列表、集合及列表去重操作Python
- TCL命令
- Python基礎-列表操作(2):列表的遍歷和數字列表Python
- TCL 750評測 TCL 750值得買嗎?
- python基礎(三)——操作列表Python
- 04-python的列表操作Python
- python列表元組的操作Python
- 實現 UITableViewCell 側滑操作列表UIView
- TCL - info命令
- python 複製以及更改列表操作Python
- 在查詢列表中使用PRIOR操作
- Manipulating Files With Tcl
- 【編測編學】零基礎學python_09_列表(操作列表之遍歷列表)Python
- TCL集團改名為TCL科技(蘋果企業開發者賬號)蘋果
- Python學習之路3-操作列表Python
- python 多元列表操作兩大誤區Python
- Python基礎——while、字串、列表及操作PythonWhile字串
- 第六章:常用的列表操作
- Python操作列表的常用方法總結Python
- TCL手機TCL 750正式釋出 售價1993元
- 智慧時代的TCL之舞
- Tcl語法簡介
- 不懂OT的列表定義操作的規則
- python資料型別-列表建立和操作Python資料型別
- iOS操作屬性列表plist(增刪改查)iOS
- TCL學習之info命令
- TCL檔案查詢拆分