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-zandA-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.concatfunction 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.gmatchinstead.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.
