Mô đun:String/tài liệu

Mô đun này nhằm cung cấp quyền truy cập vào các hàm xử lý chuỗi cơ bản.

Hầu hết các hàm được cung cấp ở đây có thể được gọi bằng tham số có tên, tham số không tên hoặc kết hợp cả hai. Nếu sử dụng tham số có tên, Mediawiki sẽ tự động loại bỏ mọi khoảng trắng ở đầu hoặc cuối tham số. Tùy thuộc vào mục đích sử dụng, có thể có lợi khi giữ lại hoặc loại bỏ các khoảng trắng đó.

Các tùy chọn toàn cục

; ignore_errors
: Nếu đặt là 'true' hoặc 1, bất kỳ điều kiện lỗi nào sẽ trả về một chuỗi rỗng thay vì thông báo lỗi.
; error_category
: Nếu xảy ra lỗi, chỉ định tên của thể loại để đưa vào thông báo lỗi. Thể loại mặc định là .
; no_category
: Nếu đặt là 'true' hoặc 1, sẽ không có thể loại nào được thêm vào nếu xảy ra lỗi.

Các kiểm thử đơn vị cho mô đun này có tại Module:String/testcases.

len

Hàm này trả về độ dài của chuỗi mục tiêu.

Cách dùng:

:

HOẶC

:

Các tham số:

; s
: Chuỗi cần lấy độ dài

Ví dụ:

→
→

sub

Hàm này trả về một chuỗi con của chuỗi mục tiêu tại các chỉ mục được chỉ định (bao gồm cả chỉ mục đó), đánh số bắt đầu từ 1.

Cách dùng:

:

HOẶC

:

Các tham số:

; s
: Chuỗi cần lấy tập con
; i
: Chỉ mục đầu tiên của chuỗi con cần lấy, mặc định là 1.
; j
: Chỉ mục cuối cùng của chuỗi con cần lấy, mặc định là ký tự cuối cùng.

Ký tự đầu tiên của chuỗi được gán chỉ mục là 1. Nếu i hoặc j là giá trị âm, nó được hiểu là chọn ký tự bằng cách đếm ngược từ cuối chuỗi. Do đó, giá trị -1 tương đương với việc chọn ký tự cuối cùng của chuỗi.

Nếu các chỉ mục yêu cầu nằm ngoài phạm vi của chuỗi đã cho, lỗi sẽ được báo cáo. Để tránh thông báo lỗi, hãy sử dụng thay thế.

Ví dụ:

"" → ""
"" → ""
"" → ""
"" → ""
"" → ""
"" → ""

sublength

Hàm này thực hiện các tính năng của và được giữ lại để duy trì các bản mẫu cũ này. Nó trả về một chuỗi con của chuỗi mục tiêu bắt đầu từ một chỉ mục được chỉ định và có độ dài nhất định.

Cách dùng:

:

Các tham số:

; s
: Chuỗi nguồn
; i
: Chỉ mục bắt đầu của chuỗi con cần trả về. Ký tự đầu tiên của chuỗi được gán chỉ mục là 0.
; len
: Độ dài của chuỗi cần trả về, mặc định là đến ký tự cuối cùng.

Ví dụ:

→
→
→

match

Hàm này trả về một chuỗi con từ chuỗi nguồn khớp với một mẫu (pattern) được chỉ định.

Cách dùng:

:

HOẶC

:

Các tham số:

; s
: Chuỗi để tìm kiếm
; pattern
: Mẫu hoặc chuỗi cần tìm trong chuỗi nguồn
; start
: Chỉ mục trong chuỗi nguồn để bắt đầu tìm kiếm. Ký tự đầu tiên của chuỗi có chỉ mục là 1. Mặc định là 1.
; match
: Trong một số trường hợp, có thể có nhiều kết quả khớp trên một chuỗi duy nhất. Tham số này chỉ định kết quả khớp nào sẽ được trả về, trong đó kết quả đầu tiên là match= 1. Nếu chỉ định số âm, kết quả khớp sẽ được đếm ngược từ kết quả cuối cùng. Do đó match = -1 tương đương với yêu cầu kết quả khớp cuối cùng. Mặc định là 1.
; plain
: Cờ boolean chỉ ra rằng mẫu nên được hiểu là văn bản thuần túy và không phải là mẫu Scribunto ustring (một dạng biểu thức chính quy kiểu Lua thân thiện với unicode). Mặc định là false (để thay đổi: plain=true)
; nomatch
: Nếu không tìm thấy kết quả khớp, xuất ra giá trị "nomatch" thay vì lỗi.
; ignore_errors
: Nếu không tìm thấy kết quả khớp và ignore_errors=true, xuất ra chuỗi rỗng thay vì lỗi.

Nếu match_number hoặc start_index nằm ngoài phạm vi của chuỗi đang truy vấn, hàm này sẽ tạo ra lỗi. Lỗi cũng được tạo ra nếu không tìm thấy kết quả khớp.
Nếu thêm tham số ignore_errors=true, lỗi sẽ bị chặn và chuỗi rỗng sẽ được trả về khi có bất kỳ thất bại nào.

Để biết thông tin về cách xây dựng mẫu Lua, một dạng của biểu thức chính quy, xem:

Các mẫu Scribunto
Các mẫu chuỗi Unicode Scribunto

Ví dụ:
→
→
→
→
→
→
→
→
→
→
→

pos

Hàm này trả về một ký tự đơn từ chuỗi mục tiêu tại vị trí pos.

Cách dùng:

:

HOẶC

:

Các tham số:

; target
: Chuỗi cần tìm kiếm
; pos
: Chỉ mục của ký tự cần trả về

Ký tự đầu tiên có giá trị chỉ mục là 1.

Nếu yêu cầu một giá trị âm, hàm này sẽ chọn ký tự bằng cách đếm ngược từ cuối chuỗi. Nói cách khác pos = -1 tương đương với việc yêu cầu ký tự cuối cùng.

Giá trị yêu cầu bằng 0, hoặc lớn hơn độ dài của chuỗi sẽ trả về lỗi.

Ví dụ:

→
→

str_find

Hàm này sao chép hành vi của , bao gồm tất cả các đặc điểm kỳ quặc của nó. Hàm này được cung cấp để hỗ trợ các bản mẫu hiện có, nhưng KHÔNG ĐƯỢC KHUYẾN KHÍCH cho mã và bản mẫu mới. Mã mới được khuyến nghị sử dụng hàm "find" để thay thế.

Trả về chỉ mục đầu tiên trong "source" khớp với "target". Việc đánh chỉ mục bắt đầu từ 1, và hàm trả về -1 nếu chuỗi "target" không hiện diện trong "source".

Lưu ý quan trọng: Nếu chuỗi "target" trống / thiếu, hàm này trả về giá trị "1", đây là hành vi thường không mong muốn, và phải được tính toán riêng biệt.

Cách dùng:

:

HOẶC

:

Các tham số:

; source
: Chuỗi để tìm kiếm
; target
: Chuỗi cần tìm trong nguồn

Ví dụ:
→
→
→
→
→

find

Hàm này cho phép tìm kiếm một chuỗi mục tiêu hoặc mẫu trong một chuỗi khác.

Cách dùng:

:

HOẶC

:

Các tham số:

; source
: Chuỗi để tìm kiếm
; target
: Chuỗi hoặc mẫu cần tìm trong nguồn
; start
: Chỉ mục trong chuỗi nguồn để bắt đầu tìm kiếm, mặc định là 1
; plain
: Cờ boolean chỉ ra rằng target nên được hiểu là văn bản thuần túy và không phải là mẫu Scribunto ustring (một dạng biểu thức chính quy kiểu Lua thân thiện với unicode); mặc định là true

Hàm này trả về chỉ mục đầu tiên >= "start" nơi tìm thấy "target" trong "source". Các chỉ mục bắt đầu từ 1. Nếu không tìm thấy "target", hàm trả về 0. Nếu "source" hoặc "target" bị thiếu / trống, hàm này cũng trả về 0.

Hàm này an toàn cho các chuỗi UTF-8.

Ví dụ:
→
→
→
→
→
→

Khi sử dụng tham số không tên, khoảng trắng ở đầu và cuối được giữ lại và tính vào:
→
→
→

Kiểm tra sự hiện diện của một chuỗi:
|Found needle|Didn't find needle}} → |Found needle|Didn't find needle}}

findpagetext
Hàm findpagetext trả về vị trí của một đoạn văn bản trong mã nguồn wikitext của một trang. Nó nhận tối đa bốn tham số:
Tham số vị trí đầu tiên hoặc |text là văn bản cần tìm kiếm.
Tham số tùy chọn |title là tiêu đề trang, mặc định là trang hiện tại.
Tham số tùy chọn |plain là true cho tìm kiếm thuần (mặc định), hoặc false cho tìm kiếm mẫu Lua.
Tham số tùy chọn |nomatch là giá trị trả về khi không tìm thấy kết quả khớp; mặc định là không có gì.

; Ví dụ
: →
: →
: →
: →
: →
: →
: →
Việc tìm kiếm có phân biệt chữ hoa chữ thường, do đó cần khớp mẫu Lua để tìm sông hoặc Sông. Ví dụ cuối cùng tìm

replace (gsub)

mặc định là . Để sử dụng mẫu Scribunto mw.ustring, bạn phải đặt nó thành .}}

Hàm này cho phép thay thế một chuỗi mục tiêu hoặc mẫu trong một chuỗi khác. Đối với các lập trình viên Lua: hàm này hoạt động nội bộ bằng cách gọi mw.ustring.gsub.

Cách dùng:

:

HOẶC

:

Các tham số:

; source
: Chuỗi để tìm kiếm
; pattern
: Chuỗi hoặc mẫu cần tìm trong nguồn
; replace
: Văn bản thay thế
; count
: Số lần xuất hiện cần thay thế; mặc định là tất cả
; plain
: Cờ boolean chỉ ra rằng mẫu nên được hiểu là văn bản thuần túy và không phải là mẫu Scribunto ustring (một dạng biểu thức chính quy kiểu Lua thân thiện với unicode); mặc định là true

Ví dụ:

"" → ""
"" → ""
"" → ""
"" → ""
"" → ""
→

rep

Lặp lại một chuỗi n lần. Một hàm đơn giản để chuyển string.rep vào các bản mẫu.

Cách dùng:

:

Các tham số:

; source
: Chuỗi cần lặp lại
; count
: Số lần lặp lại.

Ví dụ:

"" → ""
"" → ""

escapePattern

Trong một mẫu Lua, thay đổi một ký tự lớp thành một ký tự nghĩa đen (literal). Ví dụ: trong một mẫu, ký tự . bắt "bất kỳ ký tự nào"; escapePattern sẽ chuyển đổi nó thành %., chỉ bắt ký tự chấm "." theo nghĩa đen.

Cách dùng:


Các tham số:

; pattern_string
: Chuỗi mẫu cần thoát (escape)

Ví dụ:

"" → ""
"" → ""

count
Đếm số lần một mẫu nhất định xuất hiện trong các đối số được truyền cho mô đun này. Chỉ đếm các kết quả khớp rời rạc.

Cách dùng:
:

HOẶC

:
Các tham số:
; source_string
: Chuỗi để đếm số lần xuất hiện trong đó
; pattern
: Chuỗi hoặc mẫu để đếm số lần xuất hiện trong nguồn
; plain
: Cờ boolean chỉ ra rằng mẫu nên được hiểu là văn bản thuần túy và không phải là mẫu Scribunto ustring (một dạng biểu thức chính quy kiểu Lua thân thiện với unicode); mặc định là true

Ví dụ:
Đếm chữ 'a': "" → ""
Đếm số lần xuất hiện của 'aba': "" → ""
Đếm "hoặc 'a' hoặc 'c' ":"" → ""
Đếm "không phải 'a' ": "" → ""
Đếm "bắt đầu bằng 'a' ": "" → ""

join
Nối tất cả các chuỗi được truyền dưới dạng đối số thành một chuỗi, coi đối số đầu tiên là dấu phân cách.

Cách dùng:
:
Các tham số:
; separator
: Chuỗi dùng để phân tách từng chuỗi được nối với nhau
: Lưu ý rằng khoảng trắng ở đầu và cuối dấu phân cách sẽ không bị loại bỏ.
; string1/string2/...
: Các chuỗi được nối với nhau
Ví dụ:
"" → ""
"" → ""
"" → ""
"" → ""
"" → ""
Ví dụ trước sử dụng thực thể html &amp;ndash; nhưng ký tự unicode cũng hoạt động.

endswith

Cách dùng:
:

HOẶC

:
Trả về "yes" nếu chuỗi nguồn kết thúc bằng chuỗi tìm kiếm. Sử dụng các tham số có tên để cắt khoảng trắng của chuỗi trước khi sử dụng. Bất chấp tên tham số, chuỗi_cần_tìm không phải là mẫu Lua, nó được diễn giải theo nghĩa đen.

"" → ""
"" → ""

Xem thêm
và các hàm khác từ cùng mô đun này