QGIS API Documentation  3.21.0-Master (5b68dc587e)
Public Types | Static Public Member Functions | List of all members
QgsStringUtils Class Reference

Utility functions for working with strings. More...

#include <qgsstringutils.h>

Public Types

enum  Capitalization {
  MixedCase = QFont::MixedCase , AllUppercase = QFont::AllUppercase , AllLowercase = QFont::AllLowercase , ForceFirstLetterToCapital = QFont::Capitalize ,
  TitleCase = QFont::Capitalize + 1000 , UpperCamelCase = QFont::Capitalize + 1001
}
 Capitalization options. More...
 

Static Public Member Functions

static QString ampersandEncode (const QString &string)
 Makes a raw string safe for inclusion as a HTML/XML string literal. More...
 
static QString capitalize (const QString &string, Capitalization capitalization)
 Converts a string by applying capitalization rules to the string. More...
 
static double fuzzyScore (const QString &candidate, const QString &search)
 Tests a candidate string to see how likely it is a match for a specified search string. More...
 
static int hammingDistance (const QString &string1, const QString &string2, bool caseSensitive=false)
 Returns the Hamming distance between two strings. More...
 
static QString htmlToMarkdown (const QString &html)
 Convert simple HTML to markdown. More...
 
static QString insertLinks (const QString &string, bool *foundLinks=nullptr)
 Returns a string with any URL (e.g., http(s)/ftp) and mailto: text converted to valid HTML <a ...> links. More...
 
static bool isUrl (const QString &string)
 Returns whether the string is a URL (http,https,ftp,file) More...
 
static int levenshteinDistance (const QString &string1, const QString &string2, bool caseSensitive=false)
 Returns the Levenshtein edit distance between two strings. More...
 
static QString longestCommonSubstring (const QString &string1, const QString &string2, bool caseSensitive=false)
 Returns the longest common substring between two strings. More...
 
static QString qRegExpEscape (const QString &string)
 Returns an escaped string matching the behavior of QRegExp::escape. More...
 
static QString soundex (const QString &string)
 Returns the Soundex representation of a string. More...
 
static QString substituteVerticalCharacters (QString string)
 Returns a string with characters having vertical representation form substituted. More...
 
static QString truncateMiddleOfString (const QString &string, int maxLength)
 Truncates a string to the specified maximum character length. More...
 
static QString wordWrap (const QString &string, int length, bool useMaxLineLength=true, const QString &customDelimiter=QString())
 Automatically wraps a string by inserting new line characters at appropriate locations in the string. More...
 

Detailed Description

Utility functions for working with strings.

Since
QGIS 2.11

Definition at line 184 of file qgsstringutils.h.

Member Enumeration Documentation

◆ Capitalization

Capitalization options.

Enumerator
MixedCase 

Mixed case, ie no change.

AllUppercase 

Convert all characters to uppercase.

AllLowercase 

Convert all characters to lowercase.

ForceFirstLetterToCapital 

Convert just the first letter of each word to uppercase, leave the rest untouched.

TitleCase 

Simple title case conversion - does not fully grammatically parse the text and uses simple rules only. Note that this method does not convert any characters to lowercase, it only uppercases required letters. Callers must ensure that input strings are already lowercased.

UpperCamelCase 

Convert the string to upper camel case. Note that this method does not unaccent characters.

Definition at line 189 of file qgsstringutils.h.

Member Function Documentation

◆ ampersandEncode()

QString QgsStringUtils::ampersandEncode ( const QString &  string)
static

Makes a raw string safe for inclusion as a HTML/XML string literal.

This includes replacing '<' with '<', '>' with '>', '&' with '&amp', and any extended unicode characters with the XML style &#233; encoded versions of these characters.

Since
QGIS 3.2

Definition at line 116 of file qgsstringutils.cpp.

◆ capitalize()

QString QgsStringUtils::capitalize ( const QString &  string,
QgsStringUtils::Capitalization  capitalization 
)
static

Converts a string by applying capitalization rules to the string.

Parameters
stringinput string
capitalizationcapitalization type to apply
Returns
capitalized string
Since
QGIS 3.0

Definition at line 24 of file qgsstringutils.cpp.

◆ fuzzyScore()

double QgsStringUtils::fuzzyScore ( const QString &  candidate,
const QString &  search 
)
static

Tests a candidate string to see how likely it is a match for a specified search string.

Values are normalized between 0 and 1.

Parameters
candidatecandidate string
searchsearch term string
Returns
Normalized value of how likely is the search to be in the candidate
Note
Use this function only to calculate the fuzzy score between two strings and later compare these values, but do not depend on the actual numbers. They are implementation detail that may change in a future release.
Since
3.14

Definition at line 416 of file qgsstringutils.cpp.

◆ hammingDistance()

int QgsStringUtils::hammingDistance ( const QString &  string1,
const QString &  string2,
bool  caseSensitive = false 
)
static

Returns the Hamming distance between two strings.

This equates to the number of characters at corresponding positions within the input strings where the characters are different. The input strings must be the same length.

Parameters
string1first string
string2second string
caseSensitiveset to true for case sensitive comparison
Returns
Hamming distance between strings, or -1 if strings are different lengths.

Definition at line 281 of file qgsstringutils.cpp.

◆ htmlToMarkdown()

QString QgsStringUtils::htmlToMarkdown ( const QString &  html)
static

Convert simple HTML to markdown.

Only br, b and link are supported.

Parameters
htmlHTML to convert to markdown
Returns
String formatted as markdown
Since
QGIS 3.10

Definition at line 572 of file qgsstringutils.cpp.

◆ insertLinks()

QString QgsStringUtils::insertLinks ( const QString &  string,
bool *  foundLinks = nullptr 
)
static

Returns a string with any URL (e.g., http(s)/ftp) and mailto: text converted to valid HTML <a ...> links.

Parameters
stringstring to insert links into
foundLinksif specified, will be set to true if any links were inserted into the string
Returns
string with inserted links
Since
QGIS 3.0

Definition at line 520 of file qgsstringutils.cpp.

◆ isUrl()

bool QgsStringUtils::isUrl ( const QString &  string)
static

Returns whether the string is a URL (http,https,ftp,file)

Parameters
stringthe string to check
Returns
whether the string is an URL
Since
QGIS 3.22

Definition at line 566 of file qgsstringutils.cpp.

◆ levenshteinDistance()

int QgsStringUtils::levenshteinDistance ( const QString &  string1,
const QString &  string2,
bool  caseSensitive = false 
)
static

Returns the Levenshtein edit distance between two strings.

This equates to the minimum number of character edits (insertions, deletions or substitutions) required to change one string to another.

Parameters
string1first string
string2second string
caseSensitiveset to true for case sensitive comparison
Returns
edit distance. Lower distances indicate more similar strings.

Definition at line 136 of file qgsstringutils.cpp.

◆ longestCommonSubstring()

QString QgsStringUtils::longestCommonSubstring ( const QString &  string1,
const QString &  string2,
bool  caseSensitive = false 
)
static

Returns the longest common substring between two strings.

This substring is the longest string that is a substring of the two input strings. For example, the longest common substring of "ABABC" and "BABCA" is "ABC".

Parameters
string1first string
string2second string
caseSensitiveset to true for case sensitive comparison
Returns
longest common substring

Definition at line 218 of file qgsstringutils.cpp.

◆ qRegExpEscape()

QString QgsStringUtils::qRegExpEscape ( const QString &  string)
static

Returns an escaped string matching the behavior of QRegExp::escape.

Parameters
stringString to escape
Returns
Escaped string
Since
QGIS 3.22

Definition at line 697 of file qgsstringutils.cpp.

◆ soundex()

QString QgsStringUtils::soundex ( const QString &  string)
static

Returns the Soundex representation of a string.

Soundex is a phonetic matching algorithm, so strings with similar sounds should be represented by the same Soundex code.

Parameters
stringinput string
Returns
4 letter Soundex code

Definition at line 320 of file qgsstringutils.cpp.

◆ substituteVerticalCharacters()

QString QgsStringUtils::substituteVerticalCharacters ( QString  string)
static

Returns a string with characters having vertical representation form substituted.

Parameters
stringinput string
Returns
string with substitution applied
Since
QGIS 3.10

Definition at line 675 of file qgsstringutils.cpp.

◆ truncateMiddleOfString()

QString QgsStringUtils::truncateMiddleOfString ( const QString &  string,
int  maxLength 
)
static

Truncates a string to the specified maximum character length.

If the string exceeds the maximum character length, then the string will be truncated by removing characters from the middle of the string and replacing them with a horizontal ellipsis character.

Since
QGIS 3.22

Definition at line 730 of file qgsstringutils.cpp.

◆ wordWrap()

QString QgsStringUtils::wordWrap ( const QString &  string,
int  length,
bool  useMaxLineLength = true,
const QString &  customDelimiter = QString() 
)
static

Automatically wraps a string by inserting new line characters at appropriate locations in the string.

The length argument specifies either the minimum or maximum length of lines desired, depending on whether useMaxLineLength is true. If useMaxLineLength is TRUE, then the string will be wrapped so that each line ideally will not exceed length of characters. If useMaxLineLength is false, then the string will be wrapped so that each line will ideally exceed length of characters.

A custom delimiter can be specified to use instead of space characters.

Since
QGIS 3.4

Definition at line 598 of file qgsstringutils.cpp.


The documentation for this class was generated from the following files: