Library stringaux
Auxiliary functions for string manipulation
Author:
Copyright © Same as Nmap--See https://nmap.org/book/man-legal.html
Source: https://svn.nmap.org/nmap/nselib/stringaux.lua
Functions
- filename_escape (s)
Escape a string to remove bytes and strings that may have meaning to a filesystem, such as slashes.
- ipattern (pattern)
Returns the case insensitive pattern of given parameter
- strjoin (delimiter, list)
Join a list of strings with a separator string.
- strsplit (pattern, text)
Split a string at a given delimiter, which may be a pattern.
Functions
- filename_escape (s)
-
Escape a string to remove bytes and strings that may have meaning to a filesystem, such as slashes.
All bytes are escaped, except for:
- alphabetic
a
-z
andA
-Z
- digits 0-9
.
_
-
"."
and".."
have their characters escaped.Bytes are escaped by a percent sign followed by the two-digit hexadecimal representation of the byte value.
filename_escape("filename.ext") --> "filename.ext"
filename_escape("input/output") --> "input%2foutput"
filename_escape(".") --> "%2e"
filename_escape("..") --> "%2e%2e"
encodeURIComponent
, except that fewer bytes are whitelisted, and it works on bytes, not Unicode characters or UTF-16 code points.Parameters
- s
- alphabetic
- ipattern (pattern)
-
Returns the case insensitive pattern of given parameter
Useful while doing case insensitive pattern match using string library. https://stackoverflow.com/questions/11401890/case-insensitive-lua-pattern-matching/11402486#11402486
Parameters
- pattern
- The string
Usage:
stringaux.ipattern("user") --> "[uU][sS][eE][rR]"
Return value:
A case insensitive patterned string - strjoin (delimiter, list)
-
Join a list of strings with a separator string.
This is Lua's
table.concat
function with the parameters swapped for coherence.Parameters
- delimiter
- String to delimit each element of the list.
- list
- Array of strings to concatenate.
Usage:
stringaux.strjoin(", ", {"Anna", "Bob", "Charlie", "Dolores"}) --> "Anna, Bob, Charlie, Dolores"
Return value:
Concatenated string. - strsplit (pattern, text)
-
Split a string at a given delimiter, which may be a pattern.
If you want to loop over the resulting values, consider using string.gmatch instead.
Parameters
- pattern
- Pattern that separates the desired strings.
- text
- String to split.
Usage:
stringaux.strsplit(",%s*", "Anna, Bob, Charlie, Dolores") --> { "Anna", "Bob", "Charlie", "Dolores" }
Return value:
Array of substrings without the separating pattern.See also: