libzypp  13.10.6
zypp::str Namespace Reference

String related utilities and Regular expression matching. More...

Classes

class  regex
 Regular expression. More...
 
class  smatch
 Regular expression match result. More...
 
struct  SafeBuf
 Assert free called for allocated char *. More...
 
struct  Str
 Convenient building of std::string via std::ostream::operator<<. More...
 

Typedefs

typedef Exception regex_error
 

Functions

bool regex_match (const std::string &s, smatch &matches, const regex &regex)
 regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX More...
 
bool regex_match (const char *s, const regex &regex)
 regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX More...
 
bool regex_match (const std::string &s, const regex &regex)
 regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX More...
 
std::string form (const char *format,...) __attribute__((format(printf
 Printf style construction of std::string. More...
 
std::string strerror (int errno_r)
 Return string describing the error_r code. More...
 
std::string stripFirstWord (std::string &line, const bool ltrim_first)
 
std::string stripLastWord (std::string &line, const bool rtrim_first)
 
std::string gsub (const std::string &str_r, const std::string &from_r, const std::string &to_r)
 Return a string with all occurrences of from_r replaced with to_r. More...
 
std::string & replaceAll (std::string &str_r, const std::string &from_r, const std::string &to_r)
 Replace all occurrences of from_r with to_r in str_r (inplace). More...
 
std::string gsubFun (const std::string &str_r, const std::string &from_r, function< std::string()> to_r)
 
std::string & replaceAllFun (std::string &str_r, const std::string &from_r, function< std::string()> to_r)
 
std::string getline (std::istream &str, const Trim trim_r)
 Return stream content up to (but not returning) the next newline. More...
 
std::string getline (std::istream &str, bool trim=false)
 Return stream content up to (but not returning) the next newline. More...
 
std::string receiveUpTo (std::istream &str, const char delim_r, bool returnDelim_r=false)
 Return stream content up to the next ocurrence of delim_r or EOF delim_r, if found, is always read from the stream. More...
 
std::string asString (const std::string &t)
 Global asString() that works with std::string too. More...
 
std::string asString (const char *t)
 
std::string asString (char *t)
 
template<class _T >
std::string asString (const _T &t)
 
template<class _T >
std::string asString (const intrusive_ptr< _T > &p)
 
template<class _T >
std::string asString (const weak_ptr< _T > &p)
 
template<>
std::string asString (const bool &t)
 
bool strToTrue (const C_Str &str)
 Parsing boolean from string. More...
 
bool strToFalse (const C_Str &str)
 Return false if str is 0, false, no, off. More...
 
bool strToBool (const C_Str &str, bool default_r)
 Parse str into a bool depending on the default value. More...
 
bool strToBoolNodefault (const C_Str &str, bool &return_r)
 Parse str into a bool if it's a legal true or false string. More...
 
Hexencode.

Encode all characters other than [a-zA-Z0-9] as XX.

Todo:
unsecape()

This includes the % character itself, which becomes %25.

std::string hexencode (const C_Str &str_r)
 Encode all characters other than [a-zA-Z0-9] as XX. More...
 
std::string hexdecode (const C_Str &str_r)
 Decode hexencoded XX sequences. More...
 
Case conversion.
std::string toLower (const std::string &s)
 Return lowercase version of s. More...
 
std::string toUpper (const std::string &s)
 Return uppercase version of s. More...
 
std::string toLower (const char *s)
 
std::string toUpper (const char *s)
 
Escape.
std::string escape (const C_Str &str_r, const char c= ' ')
 Escape desired character c using a backslash. More...
 
void appendEscaped (std::string &str_r, const C_Str &next_r, const char sep_r= ' ')
 Escape next_r and append it to str_r using separator sep_r. More...
 
String representation of number.

Optional second argument sets the minimal string width (' ' padded).

Negative values will cause the number to be left adjusted within the string.

Default width is 0.

* numstring(42) -> "42"
* numstring(42, 4) -> " 42"
* numstring(42,-4) -> "42 "
*
std::string numstring (char n, int w=0)
 
std::string numstring (unsigned char n, int w=0)
 
std::string numstring (short n, int w=0)
 
std::string numstring (unsigned short n, int w=0)
 
std::string numstring (int n, int w=0)
 
std::string numstring (unsigned n, int w=0)
 
std::string numstring (long n, int w=0)
 
std::string numstring (unsigned long n, int w=0)
 
std::string numstring (long long n, int w=0)
 
std::string numstring (unsigned long long n, int w=0)
 
template<>
std::string asString (const char &t)
 
template<>
std::string asString (const unsigned char &t)
 
template<>
std::string asString (const short &t)
 
template<>
std::string asString (const unsigned short &t)
 
template<>
std::string asString (const int &t)
 
template<>
std::string asString (const unsigned &t)
 
template<>
std::string asString (const long &t)
 
template<>
std::string asString (const unsigned long &t)
 
template<>
std::string asString (const long long &t)
 
template<>
std::string asString (const unsigned long long &t)
 
String representation of number as hex value with leading '0x'.

Optional second argument sets the minimal string width (0 padded).

Negative values will cause the number to be left adjusted within the string. Default width is 10 (4 for char).

hexstring(42)           -> "0x0000002a"
hexstring(42, 4)        -> "0x2a"
hexstring(42,-4)        -> "0x2a"
std::string hexstring (char n, int w=4)
 
std::string hexstring (unsigned char n, int w=4)
 
std::string hexstring (short n, int w=10)
 
std::string hexstring (unsigned short n, int w=10)
 
std::string hexstring (int n, int w=10)
 
std::string hexstring (unsigned n, int w=10)
 
std::string hexstring (long n, int w=10)
 
std::string hexstring (unsigned long n, int w=10)
 
std::string hexstring (long long n, int w=0)
 
std::string hexstring (unsigned long long n, int w=0)
 
String representation of number as octal value with leading '0'.

Optional second argument sets the minimal string width (0 padded).

Negative values will cause the number to be left adjusted within the string. Default width is 5 (4 for char).

octstring(42)           -> "00052"
octstring(42, 4)        -> "0052"
octstring(42,-4)        -> "052 "
std::string octstring (char n, int w=4)
 
std::string octstring (unsigned char n, int w=4)
 
std::string octstring (short n, int w=5)
 
std::string octstring (unsigned short n, int w=5)
 
std::string octstring (int n, int w=5)
 
std::string octstring (unsigned n, int w=5)
 
std::string octstring (long n, int w=5)
 
std::string octstring (unsigned long n, int w=5)
 
std::string octstring (long long n, int w=0)
 
std::string octstring (unsigned long long n, int w=0)
 
template<typename _It >
_It strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
short strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
int strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
long strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
long long strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
unsigned short strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
unsigned strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
unsigned long strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<>
unsigned long long strtonum (const C_Str &str)
 Parsing numbers from string. More...
 
template<typename _It >
_It strtonum (const C_Str &str, _It &i)
 String to integer type detemined 2nd function arg i. More...
 
Split.
template<class _OutputIterator >
unsigned split (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=" \t")
 Split line_r into words. More...
 
template<class _OutputIterator >
unsigned splitEscaped (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=" \t", bool withEmpty=false)
 Split line_r into words with respect to escape delimeters. More...
 
template<class _OutputIterator >
unsigned splitFields (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=":")
 Split line_r into fields. More...
 
template<class _OutputIterator >
unsigned splitFieldsEscaped (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=":")
 Split line_r into fields handling also escaped separators. More...
 
Join.
template<class _Iterator >
std::string join (_Iterator begin, _Iterator end, const C_Str &sep_r=" ")
 Join strings using separator sep_r (defaults to BLANK). More...
 
template<class _Container >
std::string join (const _Container &cont_r, const C_Str &sep_r=" ")
 Join strings using separator sep_r (defaults to BLANK). More...
 
template<class _Iterator >
std::string joinEscaped (_Iterator begin, _Iterator end, const char sep_r= ' ')
 Join strings using separator sep_r, quoting or escaping the values. More...
 
Case insensitive comparison.
int compareCI (const C_Str &lhs, const C_Str &rhs)
 
Locate substring.
bool contains (const C_Str &str_r, const C_Str &val_r)
 Locate substring case sensitive. More...
 
bool containsCI (const C_Str &str_r, const C_Str &val_r)
 Locate substring case insensitive. More...
 
String prefix/suffix handling.
bool hasPrefix (const C_Str &str_r, const C_Str &prefix_r)
 Return whether str_r has prefix prefix_r. More...
 
std::string stripPrefix (const C_Str &str_r, const C_Str &prefix_r)
 Strip a prefix_r from str_r and return the resulting string. More...
 
bool hasSuffix (const C_Str &str_r, const C_Str &suffix_r)
 Return whether str_r has suffix suffix_r. More...
 
std::string stripSuffix (const C_Str &str_r, const C_Str &suffix_r)
 Strip a suffix_r from str_r and return the resulting string. More...
 
std::string::size_type commonPrefix (const C_Str &lhs, const C_Str &rhs)
 Return size of the common prefix of lhs and rhs. More...
 
bool startsWith (const C_Str &str_r, const C_Str &prefix_r)
 alias for hasPrefix More...
 
bool endsWith (const C_Str &str_r, const C_Str &prefix_r)
 alias for hasSuffix More...
 

Trimming whitepace.

Todo:
optimize l/r trim.
enum  Trim { NO_TRIM = 0x00, L_TRIM = 0x01, R_TRIM = 0x02, TRIM = (L_TRIM|R_TRIM) }
 To define how to trim. More...
 
std::string trim (const std::string &s, const Trim trim_r)
 
std::string ltrim (const std::string &s)
 
std::string rtrim (const std::string &s)
 

Detailed Description

String related utilities and Regular expression matching.

See Also
Regular expression matching

Typedef Documentation

Definition at line 54 of file Regex.h.

Enumeration Type Documentation

To define how to trim.

Enumerator
NO_TRIM 
L_TRIM 
R_TRIM 
TRIM 

Definition at line 783 of file String.h.

Function Documentation

bool zypp::str::regex_match ( const std::string &  s,
smatch &  matches,
const regex &  regex 
)
inline

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

Definition at line 70 of file Regex.h.

bool zypp::str::regex_match ( const char *  s,
const regex regex 
)

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

Definition at line 68 of file Regex.cc.

bool zypp::str::regex_match ( const std::string &  s,
const regex &  regex 
)
inline

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

regex ZYPP_STR_REGEX regex ZYPP_STR_REGEX

Definition at line 77 of file Regex.h.

std::string zypp::str::form ( const char *  format,
  ... 
)

Printf style construction of std::string.

Definition at line 34 of file String.cc.

std::string std::string zypp::str::strerror ( int  errno_r)

Return string describing the error_r code.

Like strerror, but the numerical value is included in the string as well.

Definition at line 51 of file String.cc.

bool zypp::str::strToTrue ( const C_Str &  str)

Parsing boolean from string.

Return true if str is 1, true, yes, on (or a nonzero number).

Definition at line 61 of file String.cc.

bool zypp::str::strToFalse ( const C_Str &  str)

Return false if str is 0, false, no, off.

Definition at line 78 of file String.cc.

std::string zypp::str::hexencode ( const C_Str &  str_r)

Encode all characters other than [a-zA-Z0-9] as XX.

This includes the % character itself, which becomes %25.

Definition at line 113 of file String.cc.

std::string zypp::str::hexdecode ( const C_Str &  str_r)

Decode hexencoded XX sequences.

Definition at line 134 of file String.cc.

std::string zypp::str::toLower ( const std::string &  s)

Return lowercase version of s.

Todo:
improve

Definition at line 166 of file String.cc.

std::string zypp::str::toUpper ( const std::string &  s)

Return uppercase version of s.

Todo:
improve

Definition at line 185 of file String.cc.

std::string zypp::str::trim ( const std::string &  s,
const Trim  trim_r 
)

Definition at line 204 of file String.cc.

std::string zypp::str::stripFirstWord ( std::string &  line,
const bool  ltrim_first 
)

Definition at line 237 of file String.cc.

std::string zypp::str::stripLastWord ( std::string &  line,
const bool  rtrim_first 
)

Definition at line 270 of file String.cc.

std::string zypp::str::gsub ( const std::string &  str_r,
const std::string &  from_r,
const std::string &  to_r 
)

Return a string with all occurrences of from_r replaced with to_r.

Definition at line 298 of file String.cc.

std::string & zypp::str::replaceAll ( std::string &  str_r,
const std::string &  from_r,
const std::string &  to_r 
)

Replace all occurrences of from_r with to_r in str_r (inplace).

A reference to str_r is also returned for convenience.

Definition at line 304 of file String.cc.

std::string zypp::str::gsubFun ( const std::string &  str_r,
const std::string &  from_r,
function< std::string()>  to_r 
)

Definition at line 318 of file String.cc.

std::string & zypp::str::replaceAllFun ( std::string &  str_r,
const std::string &  from_r,
function< std::string()>  to_r 
)

Definition at line 324 of file String.cc.

std::string zypp::str::escape ( const C_Str &  str_r,
const char  c = ' ' 
)

Escape desired character c using a backslash.

For use when printing c separated values, and where joinEscaped() is too heavy.

Definition at line 339 of file String.cc.

std::string zypp::str::getline ( std::istream &  str,
const Trim  trim_r 
)

Return stream content up to (but not returning) the next newline.

See Also
receiveUpTo

Definition at line 361 of file String.cc.

std::string zypp::str::getline ( std::istream &  str,
bool  trim = false 
)

Return stream content up to (but not returning) the next newline.

See Also
receiveUpTo

Definition at line 366 of file String.cc.

std::string zypp::str::receiveUpTo ( std::istream &  str,
const char  delim_r,
bool  returnDelim_r = false 
)

Return stream content up to the next ocurrence of delim_r or EOF delim_r, if found, is always read from the stream.

Whether it is also returned in the string depends on returnDelim_r. If the stream status is good, delim_r was found in the stream. If we reached EOF while looking for delim_r, eof is set; and also fail, if we did not read any data before.

Definition at line 371 of file String.cc.

std::string zypp::str::asString ( const std::string &  t)
inline

Global asString() that works with std::string too.

Definition at line 125 of file String.h.

std::string zypp::str::asString ( const char *  t)
inline

Definition at line 128 of file String.h.

std::string zypp::str::asString ( char *  t)
inline

Definition at line 131 of file String.h.

template<class _T >
std::string zypp::str::asString ( const _T &  t)
inline

Definition at line 135 of file String.h.

template<class _T >
std::string zypp::str::asString ( const intrusive_ptr< _T > &  p)
inline

Definition at line 139 of file String.h.

template<class _T >
std::string zypp::str::asString ( const weak_ptr< _T > &  p)
inline

Definition at line 143 of file String.h.

template<>
std::string zypp::str::asString ( const bool &  t)
inline

Definition at line 147 of file String.h.

std::string zypp::str::numstring ( char  n,
int  w = 0 
)
inline

Definition at line 219 of file String.h.

std::string zypp::str::numstring ( unsigned char  n,
int  w = 0 
)
inline

Definition at line 220 of file String.h.

std::string zypp::str::numstring ( short  n,
int  w = 0 
)
inline

Definition at line 221 of file String.h.

std::string zypp::str::numstring ( unsigned short  n,
int  w = 0 
)
inline

Definition at line 222 of file String.h.

std::string zypp::str::numstring ( int  n,
int  w = 0 
)
inline

Definition at line 223 of file String.h.

std::string zypp::str::numstring ( unsigned  n,
int  w = 0 
)
inline

Definition at line 224 of file String.h.

std::string zypp::str::numstring ( long  n,
int  w = 0 
)
inline

Definition at line 225 of file String.h.

std::string zypp::str::numstring ( unsigned long  n,
int  w = 0 
)
inline

Definition at line 226 of file String.h.

std::string zypp::str::numstring ( long long  n,
int  w = 0 
)
inline

Definition at line 227 of file String.h.

std::string zypp::str::numstring ( unsigned long long  n,
int  w = 0 
)
inline

Definition at line 228 of file String.h.

template<>
std::string zypp::str::asString ( const char &  t)
inline

Definition at line 230 of file String.h.

template<>
std::string zypp::str::asString ( const unsigned char &  t)
inline

Definition at line 231 of file String.h.

template<>
std::string zypp::str::asString ( const short &  t)
inline

Definition at line 232 of file String.h.

template<>
std::string zypp::str::asString ( const unsigned short &  t)
inline

Definition at line 233 of file String.h.

template<>
std::string zypp::str::asString ( const int &  t)
inline

Definition at line 234 of file String.h.

template<>
std::string zypp::str::asString ( const unsigned &  t)
inline

Definition at line 235 of file String.h.

template<>
std::string zypp::str::asString ( const long &  t)
inline

Definition at line 236 of file String.h.

template<>
std::string zypp::str::asString ( const unsigned long &  t)
inline

Definition at line 237 of file String.h.

template<>
std::string zypp::str::asString ( const long long &  t)
inline

Definition at line 238 of file String.h.

template<>
std::string zypp::str::asString ( const unsigned long long &  t)
inline

Definition at line 239 of file String.h.

std::string zypp::str::hexstring ( char  n,
int  w = 4 
)
inline

Definition at line 254 of file String.h.

std::string zypp::str::hexstring ( unsigned char  n,
int  w = 4 
)
inline

Definition at line 255 of file String.h.

std::string zypp::str::hexstring ( short  n,
int  w = 10 
)
inline

Definition at line 256 of file String.h.

std::string zypp::str::hexstring ( unsigned short  n,
int  w = 10 
)
inline

Definition at line 257 of file String.h.

std::string zypp::str::hexstring ( int  n,
int  w = 10 
)
inline

Definition at line 258 of file String.h.

std::string zypp::str::hexstring ( unsigned  n,
int  w = 10 
)
inline

Definition at line 259 of file String.h.

std::string zypp::str::hexstring ( long  n,
int  w = 10 
)
inline

Definition at line 260 of file String.h.

std::string zypp::str::hexstring ( unsigned long  n,
int  w = 10 
)
inline

Definition at line 261 of file String.h.

std::string zypp::str::hexstring ( long long  n,
int  w = 0 
)
inline

Definition at line 262 of file String.h.

std::string zypp::str::hexstring ( unsigned long long  n,
int  w = 0 
)
inline

Definition at line 263 of file String.h.

std::string zypp::str::octstring ( char  n,
int  w = 4 
)
inline

Definition at line 278 of file String.h.

std::string zypp::str::octstring ( unsigned char  n,
int  w = 4 
)
inline

Definition at line 279 of file String.h.

std::string zypp::str::octstring ( short  n,
int  w = 5 
)
inline

Definition at line 280 of file String.h.

std::string zypp::str::octstring ( unsigned short  n,
int  w = 5 
)
inline

Definition at line 281 of file String.h.

std::string zypp::str::octstring ( int  n,
int  w = 5 
)
inline

Definition at line 282 of file String.h.

std::string zypp::str::octstring ( unsigned  n,
int  w = 5 
)
inline

Definition at line 283 of file String.h.

std::string zypp::str::octstring ( long  n,
int  w = 5 
)
inline

Definition at line 284 of file String.h.

std::string zypp::str::octstring ( unsigned long  n,
int  w = 5 
)
inline

Definition at line 285 of file String.h.

std::string zypp::str::octstring ( long long  n,
int  w = 0 
)
inline

Definition at line 286 of file String.h.

std::string zypp::str::octstring ( unsigned long long  n,
int  w = 0 
)
inline

Definition at line 287 of file String.h.

template<typename _It >
_It zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 304 of file String.h.

template<>
short zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 304 of file String.h.

template<>
int zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 306 of file String.h.

template<>
long zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 308 of file String.h.

template<>
long long zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 310 of file String.h.

template<>
unsigned short zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 313 of file String.h.

template<>
unsigned zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 315 of file String.h.

template<>
unsigned long zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 317 of file String.h.

template<>
unsigned long long zypp::str::strtonum ( const C_Str &  str)
inline

Parsing numbers from string.

String to integer type determined by template arg.

Note
Only specializations are defined.
* time_t t = strtonum<time_t>( "42" );
*

Definition at line 319 of file String.h.

template<typename _It >
_It zypp::str::strtonum ( const C_Str &  str,
_It &  i 
)
inline

String to integer type detemined 2nd function arg i.

* time_t t; strtonum( "42", t );
*

Definition at line 327 of file String.h.

bool zypp::str::strToBool ( const C_Str &  str,
bool  default_r 
)
inline

Parse str into a bool depending on the default value.

If the default is true, look for a legal false string. If the default is false, look for a legal true string.

Definition at line 345 of file String.h.

bool zypp::str::strToBoolNodefault ( const C_Str &  str,
bool &  return_r 
)
inline

Parse str into a bool if it's a legal true or false string.

If str is not a recognized true or false string, return_r is left unchanged.

Definition at line 352 of file String.h.

template<class _OutputIterator >
unsigned zypp::str::split ( const C_Str &  line_r,
_OutputIterator  result_r,
const C_Str &  sepchars_r = " \t" 
)

Split line_r into words.

Any sequence of characters in sepchars_r is treated as delimiter. The words are passed to OutputIterator result_r.

* std::vector<std::string> words;
* str::split( "some line", std::back_inserter(words) )
*

Definition at line 394 of file String.h.

template<class _OutputIterator >
unsigned zypp::str::splitEscaped ( const C_Str &  line_r,
_OutputIterator  result_r,
const C_Str &  sepchars_r = " \t",
bool  withEmpty = false 
)

Split line_r into words with respect to escape delimeters.

Any sequence of characters in sepchars_r is treated as delimiter if not inside "" or "" or escaped by \, but not The words are passed to OutputIterator result_r.

See Also
splitEscaped
* std::vector<std::string> words;
* str::splitEscaped( "some line", std::back_inserter(words) )
*
* example splitted strings
* normal line -> 2 elements ( "normal", "line" )
* escaped\ line -> 1 element( "escaped line" )
* "quoted line" -> 1 element same as above
* 'quoted line' -> 1 element same as above
* "escaped quote\'" -> 1 element ( "escaped quote'" )
*
* \param line_r The string to parse.
* \param result_r
* \param sepchars_r String of separator characters.
* \param withEmpty Whether to include empty fields between separators in the result.
*
*

Definition at line 446 of file String.h.

template<class _OutputIterator >
unsigned zypp::str::splitFields ( const C_Str &  line_r,
_OutputIterator  result_r,
const C_Str &  sepchars_r = ":" 
)

Split line_r into fields.

Any single character in sepchars_r is treated as a field separator. The words are passed to OutputIterator result_r.

* "" -> words 0
* ":" -> words 2 |||
* "a" -> words 1 |a|
* ":a" -> words 2 ||a|
* "a:" -> words 2 |a||
* ":a:" -> words 3 ||a||
*
*
* std::vector<std::string> words;
* str::split( "some line", std::back_inserter(words) )
*

Definition at line 583 of file String.h.

template<class _OutputIterator >
unsigned zypp::str::splitFieldsEscaped ( const C_Str &  line_r,
_OutputIterator  result_r,
const C_Str &  sepchars_r = ":" 
)

Split line_r into fields handling also escaped separators.

See Also
splitFields()
splitEscaped()

Definition at line 620 of file String.h.

template<class _Iterator >
std::string zypp::str::join ( _Iterator  begin,
_Iterator  end,
const C_Str &  sep_r = " " 
)

Join strings using separator sep_r (defaults to BLANK).

Definition at line 635 of file String.h.

template<class _Container >
std::string zypp::str::join ( const _Container &  cont_r,
const C_Str &  sep_r = " " 
)

Join strings using separator sep_r (defaults to BLANK).

Definition at line 650 of file String.h.

template<class _Iterator >
std::string zypp::str::joinEscaped ( _Iterator  begin,
_Iterator  end,
const char  sep_r = ' ' 
)

Join strings using separator sep_r, quoting or escaping the values.

Separator defaults to BLANK. Use splitEscaped to restore the values.

Definition at line 659 of file String.h.

void zypp::str::appendEscaped ( std::string &  str_r,
const C_Str &  next_r,
const char  sep_r = ' ' 
)
inline

Escape next_r and append it to str_r using separator sep_r.

Definition at line 712 of file String.h.

std::string zypp::str::toLower ( const char *  s)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 748 of file String.h.

std::string zypp::str::toUpper ( const char *  s)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 756 of file String.h.

int zypp::str::compareCI ( const C_Str &  lhs,
const C_Str &  rhs 
)
inline

Definition at line 763 of file String.h.

bool zypp::str::contains ( const C_Str &  str_r,
const C_Str &  val_r 
)
inline

Locate substring case sensitive.

Definition at line 770 of file String.h.

bool zypp::str::containsCI ( const C_Str &  str_r,
const C_Str &  val_r 
)
inline

Locate substring case insensitive.

Definition at line 773 of file String.h.

std::string zypp::str::ltrim ( const std::string &  s)
inline

Definition at line 792 of file String.h.

std::string zypp::str::rtrim ( const std::string &  s)
inline

Definition at line 795 of file String.h.

bool zypp::str::hasPrefix ( const C_Str &  str_r,
const C_Str &  prefix_r 
)
inline

Return whether str_r has prefix prefix_r.

Definition at line 828 of file String.h.

std::string zypp::str::stripPrefix ( const C_Str &  str_r,
const C_Str &  prefix_r 
)
inline

Strip a prefix_r from str_r and return the resulting string.

Definition at line 832 of file String.h.

bool zypp::str::hasSuffix ( const C_Str &  str_r,
const C_Str &  suffix_r 
)
inline

Return whether str_r has suffix suffix_r.

Definition at line 836 of file String.h.

std::string zypp::str::stripSuffix ( const C_Str &  str_r,
const C_Str &  suffix_r 
)
inline

Strip a suffix_r from str_r and return the resulting string.

Definition at line 840 of file String.h.

std::string::size_type zypp::str::commonPrefix ( const C_Str &  lhs,
const C_Str &  rhs 
)
inline

Return size of the common prefix of lhs and rhs.

Definition at line 847 of file String.h.

bool zypp::str::startsWith ( const C_Str &  str_r,
const C_Str &  prefix_r 
)
inline

alias for hasPrefix

Definition at line 858 of file String.h.

bool zypp::str::endsWith ( const C_Str &  str_r,
const C_Str &  prefix_r 
)
inline

alias for hasSuffix

Definition at line 861 of file String.h.