Module pl.stringx
Python-style extended string library.
see 3.6.1 of the Python reference.
If you want to make these available as string methods, then say
`stringx.import()` to bring them into the standard `string` table.
See the Guide
Dependencies: `pl.utils`
lines (self) |
return an interator over all lines in a string |
title (self) |
iniital word letters uppercase ('title case'). |
shorten (self, sz, tail) |
return a shorted version of a string. |
quote_string (s) |
Quote the given string and preserve any control or escape characters, such that reloading the string in Lua returns the same result. |
String Predicates
-
isalpha (s)
-
does s only contain alphabetic characters?.
Parameters:
-
isdigit (s)
-
does s only contain digits?.
Parameters:
-
isalnum (s)
-
does s only contain alphanumeric characters?.
Parameters:
-
isspace (s)
-
does s only contain spaces?.
Parameters:
-
islower (s)
-
does s only contain lower case characters?.
Parameters:
-
isupper (s)
-
does s only contain upper case characters?.
Parameters:
-
startswith (self, s2)
-
does string start with the substring?.
Parameters:
-
endswith (s, send)
-
does string end with the given substring?.
Parameters:
- s
string
a string
- send
a substring or a table of suffixes
Strings and Lists
-
join (self, seq)
-
concatenate the strings using this string as a delimiter.
Parameters:
- self
string
the string
- seq
a table of strings or numbers
Usage:
(' '):join {1,2,3} == '1 2 3'
-
splitlines (self, keepends)
-
break string into a list of lines
Parameters:
- self
string
the string
- keepends
(currently not used)
-
split (self[, re], n)
-
split a string into a list of strings using a delimiter.
Parameters:
- self
string
the string
- re
string
a delimiter (defaults to whitespace)
(optional)
- n
int
maximum number of results
Usage:
#(('one two'):split()) == 2
('one,two,three'):split(',') == List{'one','two','three'}
('one,two,three'):split(',',2) == List{'one','two,three'}
-
expandtabs (self, n)
-
replace all tabs in s with n spaces. If not specified, n defaults to 8.
with 0.9.5 this now correctly expands to the next tab stop (if you really
want to just replace tabs, use :gsub('\t',' ') etc)
Parameters:
- self
string
the string
- n
int
number of spaces to expand each tab, (default 8)
Finding and Replacing
-
lfind (self, sub, i1)
-
find index of first instance of sub in s from the left.
Parameters:
- self
string
the string
- sub
string
substring
- i1
int
start index
-
rfind (self, sub, first, last)
-
find index of first instance of sub in s from the right.
Parameters:
- self
string
the string
- sub
string
substring
- first
int
first index
- last
int
last index
-
replace (s, old, new[, n])
-
replace up to n instances of old by new in the string s.
if n is not present, replace all instances.
Parameters:
- s
string
the string
- old
string
the target substring
- new
string
the substitution
- n
int
optional maximum number of substitutions
(optional)
Returns:
-
result string
-
the number of substitutions
-
count (self, sub)
-
count all instances of substring in string.
Parameters:
Stripping and Justifying
-
ljust (self, w[, ch=''])
-
left-justify s with width w.
Parameters:
- self
string
the string
- w
int
width of justification
- ch
string
padding character
(default '')
-
rjust (s, w[, ch=''])
-
right-justify s with width w.
Parameters:
- s
string
the string
- w
int
width of justification
- ch
string
padding character
(default '')
-
center (s, w[, ch=''])
-
center-justify s with width w.
Parameters:
- s
string
the string
- w
int
width of justification
- ch
string
padding character
(default '')
-
lstrip (self[, chrs='%x'])
-
trim any whitespace on the left of s.
Parameters:
- self
string
the string
- chrs
string
default any whitespace character,
but can be a string of characters to be trimmed
(default '%x')
-
rstrip (s[, chrs='%x'])
-
trim any whitespace on the right of s.
Parameters:
- s
string
the string
- chrs
string
default any whitespace character,
but can be a string of characters to be trimmed
(default '%x')
-
strip (self[, chrs='%x'])
-
trim any whitespace on both left and right of s.
Parameters:
- self
string
the string
- chrs
string
default any whitespace character,
but can be a string of characters to be trimmed
(default '%x')
Partioning Strings
-
splitv (self[, re='%s'])
-
split a string using a pattern. Note that at least one value will be returned!
Parameters:
- self
string
the string
- re
string
a Lua string pattern (defaults to whitespace)
(default '%s')
Returns:
the parts of the string
Usage:
a,b = line:splitv('=')
-
partition (self, ch)
-
partition the string using first occurance of a delimiter
Parameters:
Returns:
-
part before ch
-
ch
-
part after ch
-
rpartition (self, ch)
-
partition the string p using last occurance of a delimiter
Parameters:
Returns:
-
part before ch
-
ch
-
part after ch
-
at (self, idx)
-
return the 'character' at the index.
Parameters:
- self
string
the string
- idx
int
an index (can be negative)
Returns:
a substring of length 1 if successful, empty string otherwise.
Miscelaneous
-
lines (self)
-
return an interator over all lines in a string
Parameters:
Returns:
an iterator
-
title (self)
-
iniital word letters uppercase ('title case').
Here 'words' mean chunks of non-space characters.
Parameters:
Returns:
a string with each word's first letter uppercase
-
shorten (self, sz, tail)
-
return a shorted version of a string.
Parameters:
- self
string
the string
- sz
int
the maxinum size allowed
- tail
bool
true if we want to show the end of the string (head otherwise)
-
quote_string (s)
-
Quote the given string and preserve any control or escape characters, such that reloading the string in Lua returns the same result.
Parameters:
- s
The string to be quoted.
Returns:
The quoted string.