Nguyên hàm này đôi khi thuận tiện hơn so với việc đặt các chuỗi cạnh nhau khi muốn trích dẫn hỗn hợp hoặc khi mục đích là trả về kết quả của phép nối mà không cần dùng đến trả về -mức 0 và hiệu quả hơn so với việc xây dựng một danh sách các đối số và sử dụng phép nối với một
so sánh chuỗi ?-nocase? . Trả về -1, 0 hoặc 1, tùy thuộc vào việc chuỗi1 nhỏ hơn, bằng hoặc lớn hơn chuỗi2 về mặt từ điển. Nếu -length được chỉ định, thì chỉ các ký tự có độ dài đầu tiên được sử dụng để so sánh. Nếu -length là số âm, nó sẽ bị bỏ qua. Nếu -nocase được chỉ định, thì các chuỗi được so sánh theo cách không phân biệt chữ hoa chữ thường. chuỗi bằng ?-nocase? . Trả về 1 nếu chuỗi1 và chuỗi2 giống hệt nhau hoặc 0 khi không. Nếu -length được chỉ định, thì chỉ các ký tự có độ dài đầu tiên được sử dụng để so sánh. Nếu -length là số âm, nó sẽ bị bỏ qua. Nếu -nocase được chỉ định, thì các chuỗi được so sánh theo cách không phân biệt chữ hoa chữ thường. chuỗi needleString đầu tiên haystackString ?startIndex?Tìm kiếm haystackString chuỗi ký tự khớp chính xác với các ký tự trong needleString. Nếu tìm thấy, hãy trả lại chỉ mục của ký tự đầu tiên trong trận đấu đầu tiên như vậy trong haystackString. Nếu không tìm thấy trả về -1. Nếu startIndex được chỉ định (ở bất kỳ dạng nào được mô tả trong ), thì tìm kiếm bị hạn chế bắt đầu với ký tự trong haystackString được chỉ định bởi chỉ mục. Ví dụ,string first a 0a23456789abcdef 5sẽ trả lại 10, nhưng
string first a 0123456789abcdef 11sẽ trở lại -1
string index string charIndexTrả về ký tự charIndex'th của đối số chuỗi. Char Index bằng 0 tương ứng với ký tự đầu tiên của chuỗi. charIndex có thể được chỉ định như được mô tả trong phầnNếu char Index nhỏ hơn 0 hoặc lớn hơn hoặc bằng độ dài của chuỗi thì lệnh này trả về một chuỗi rỗng
chuỗi là lớp?-nghiêm ngặt? . Nếu -strict được chỉ định, thì một chuỗi rỗng trả về 0, nếu không, một chuỗi rỗng sẽ trả về 1 trên bất kỳ lớp nào. Nếu -failindex được chỉ định, thì nếu hàm trả về 0, chỉ mục trong chuỗi nơi lớp không còn hợp lệ sẽ được lưu trữ trong biến có tên varname. Tên biến sẽ không được đặt nếu chuỗi trả về 1. Các lớp ký tự sau được nhận dạng (tên lớp có thể được viết tắt). alnumBất kỳ bảng chữ cái Unicode hoặc ký tự chữ số nào. alphaBất kỳ ký tự bảng chữ cái Unicode nào. asciiBất kỳ ký tự nào có giá trị nhỏ hơn \u0080 (những ký tự nằm trong phạm vi ascii 7 bit). booleanBất kỳ hình thức nào được phép Tcl_GetBoolean. controlBất kỳ ký tự điều khiển Unicode nào. chữ sốBất kỳ ký tự chữ số Unicode nào. Lưu ý rằng điều này bao gồm các ký tự bên ngoài phạm vi [0-9]. doubleBất kỳ hình thức nào được phép Tcl_GetDoubleFromObj. entierBất kỳ định dạng chuỗi hợp lệ nào cho giá trị số nguyên có kích thước tùy ý trong Tcl, với khoảng trắng xung quanh tùy chọn. Các định dạng được chấp nhận chính xác là những định dạng được chấp nhận bởi quy trình C Tcl_GetBignumFromObj. falseBất kỳ biểu mẫu nào được phép đối với Tcl_GetBoolean khi giá trị là sai. biểu đồ Bất kỳ ký tự in Unicode nào, ngoại trừ khoảng trắng. số nguyênBất kỳ định dạng chuỗi hợp lệ nào cho giá trị số nguyên 32 bit trong Tcl, với khoảng trắng xung quanh tùy chọn. Trong trường hợp tràn giá trị, 0 được trả về và varname sẽ chứa -1. listBất kỳ cấu trúc danh sách phù hợp nào, với khoảng trắng xung quanh tùy chọn. Trong trường hợp cấu trúc danh sách không đúng, 0 được trả về và varname sẽ chứa chỉ mục của “phần tử” trong đó phân tích cú pháp danh sách không thành công hoặc -1 nếu điều này không thể xác định được. LowerBất kỳ ký tự bảng chữ cái chữ thường Unicode. printBất kỳ ký tự in Unicode nào, kể cả khoảng trắng. punctBất kỳ ký tự dấu chấm câu Unicode nào. dấu cách Bất kỳ ký tự khoảng trắng Unicode nào, dấu tách nguyên âm tiếng Mông Cổ (U+180e), dấu cách có độ rộng bằng 0 (U+200b), bộ nối từ (U+2060) hoặc dấu cách không ngắt có chiều rộng bằng 0 (U+feff) (=BOM). trueBất kỳ hình thức nào được phép đối với Tcl_GetBoolean khi giá trị là true. chữ hoa Bất kỳ ký tự chữ cái viết hoa nào trong bộ ký tự Unicode. wideintegerBất kỳ dạng hợp lệ nào cho số nguyên rộng trong Tcl, với khoảng trắng xung quanh tùy chọn. Trong trường hợp tràn giá trị, 0 được trả về và varname sẽ chứa -1. wordcharBất kỳ ký tự từ Unicode nào. Đó là bất kỳ ký tự chữ và số nào và bất kỳ ký tự dấu chấm câu nào của trình kết nối Unicode (e. g. gạch dưới). xdigitBất kỳ ký tự chữ số thập lục phân nào ([0-9A-Fa-f])Trong trường hợp boolean, true và false, nếu hàm trả về 0, thì varname sẽ luôn được đặt thành 0, do tính chất đa dạng của một giá trị boolean hợp lệ
chuỗi cuối needleString haystackString ?lastIndex?Tìm kiếm haystackString chuỗi ký tự khớp chính xác với các ký tự trong needleString. Nếu tìm thấy, hãy trả lại chỉ mục của ký tự đầu tiên trong trận đấu cuối cùng như vậy trong haystackString. Nếu không khớp thì trả về -1. Nếu Chỉ mục cuối cùng được chỉ định (ở bất kỳ dạng nào được mô tả trong ), thì chỉ các ký tự trong Chuỗi haystack tại hoặc trước Chỉ mục cuối cùng được chỉ định mới được xem xét bởi tìm kiếm. Ví dụ,string last a 0a23456789abcdef 15sẽ trả lại 10, nhưng
string last a 0a23456789abcdef 9sẽ trở lại 1
chiều dài chuỗi stringTrả về một chuỗi thập phân cho biết số lượng ký tự trong chuỗi. Lưu ý rằng điều này không nhất thiết giống như số byte được sử dụng để lưu trữ chuỗi. Nếu giá trị là giá trị mảng byte (chẳng hạn như giá trị được trả về từ việc đọc kênh được mã hóa nhị phân), thì giá trị này sẽ trả về độ dài byte thực của giá trị. bản đồ chuỗi ?-nocase? . ánh xạ là danh sách giá trị khóa giá trị khóa. như ở dạng được trả về bởi mảng get. Mỗi trường hợp của một khóa trong chuỗi sẽ được thay thế bằng giá trị tương ứng của nó. Nếu -nocase được chỉ định, thì việc khớp được thực hiện mà không cần quan tâm đến sự khác biệt về chữ hoa chữ thường. Cả khóa và giá trị có thể là nhiều ký tự. Việc thay thế được thực hiện theo thứ tự, vì vậy khóa xuất hiện đầu tiên trong danh sách sẽ được kiểm tra trước, v.v. chuỗi chỉ được lặp lại một lần, vì vậy việc thay thế khóa trước đó sẽ không ảnh hưởng đến các lần khớp khóa sau. Ví dụ,string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababcsẽ trả về chuỗi 01321221
Lưu ý rằng nếu khóa trước đó là tiền tố của khóa sau, thì nó sẽ che dấu hoàn toàn khóa sau. Vì vậy, nếu ví dụ trước được sắp xếp lại như thế này,