QGIS/python/core/qgsstringutils.sip
2016-12-30 00:03:22 +01:00

190 lines
6.8 KiB
Plaintext

/** \ingroup core
* \class QgsStringReplacement
* \brief A representation of a single string replacement.
* \note Added in version 3.0
*/
class QgsStringReplacement
{
%TypeHeaderCode
#include <qgsstringutils.h>
%End
public:
/** Constructor for QgsStringReplacement.
* @param match string to match
* @param replacement string to replace match with
* @param caseSensitive set to true for a case sensitive match
* @param wholeWordOnly set to true to match complete words only, or false to allow partial word matches
*/
QgsStringReplacement( const QString& match,
const QString& replacement,
bool caseSensitive = false,
bool wholeWordOnly = false );
//! Returns the string matched by this object
QString match() const;
//! Returns the string to replace matches with
QString replacement() const;
//! Returns true if match is case sensitive
bool caseSensitive() const;
//! Returns true if match only applies to whole words, or false if partial word matches are permitted
bool wholeWordOnly() const;
/** Processes a given input string, applying any valid replacements which should be made.
* @param input input string
* @returns input string with any matches replaced by replacement string
*/
QString process( const QString& input ) const;
bool operator==( const QgsStringReplacement& other );
/** Returns a map of the replacement properties.
* @see fromProperties()
*/
QgsStringMap properties() const;
/** Creates a new QgsStringReplacement from an encoded properties map.
* @see properties()
*/
static QgsStringReplacement fromProperties( const QgsStringMap& properties );
};
/** \ingroup core
* \class QgsStringReplacementCollection
* \brief A collection of string replacements (specified using QgsStringReplacement objects).
* \note Added in version 3.0
*/
class QgsStringReplacementCollection
{
%TypeHeaderCode
#include <qgsstringutils.h>
%End
public:
/** Constructor for QgsStringReplacementCollection
* @param replacements initial list of string replacements
*/
QgsStringReplacementCollection( const QList< QgsStringReplacement >& replacements = QList< QgsStringReplacement >() );
/** Returns the list of string replacements in this collection.
* @see setReplacements()
*/
QList< QgsStringReplacement > replacements() const;
/** Sets the list of string replacements in this collection.
* @param replacements list of string replacements to apply. Replacements are applied in the
* order they are specified here.
* @see replacements()
*/
void setReplacements( const QList< QgsStringReplacement >& replacements );
/** Processes a given input string, applying any valid replacements which should be made
* using QgsStringReplacement objects contained by this collection. Replacements
* are made in order of the QgsStringReplacement objects contained in the collection.
* @param input input string
* @returns input string with any matches replaced by replacement string
*/
QString process( const QString& input ) const;
/** Writes the collection state to an XML element.
* @param elem target DOM element
* @param doc DOM document
* @see readXml()
*/
void writeXml( QDomElement& elem, QDomDocument& doc ) const;
/** Reads the collection state from an XML element.
* @param elem DOM element
* @see writeXml()
*/
void readXml( const QDomElement& elem );
};
/** \ingroup core
* \class QgsStringUtils
* \brief Utility functions for working with strings.
* \note Added in version 2.11
*/
class QgsStringUtils
{
%TypeHeaderCode
#include <qgsstringutils.h>
%End
public:
//! Capitalization options
enum Capitalization
{
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
};
/** Converts a string by applying capitalization rules to the string.
* @param string input string
* @param capitalization capitalization type to apply
* @return capitalized string
* @note added in QGIS 3.0
*/
static QString capitalize( const QString& string, Capitalization capitalization );
/** 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.
* @param string1 first string
* @param string2 second string
* @param caseSensitive set to true for case sensitive comparison
* @returns edit distance. Lower distances indicate more similar strings.
*/
static int levenshteinDistance( const QString &string1, const QString &string2, bool caseSensitive = false );
/** 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".
* @param string1 first string
* @param string2 second string
* @param caseSensitive set to true for case sensitive comparison
* @returns longest common substring
*/
static QString longestCommonSubstring( const QString &string1, const QString &string2, bool caseSensitive = false );
/** 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.
* @param string1 first string
* @param string2 second string
* @param caseSensitive set to true for case sensitive comparison
* @returns Hamming distance between strings, or -1 if strings are different lengths.
*/
static int hammingDistance( const QString &string1, const QString &string2, bool caseSensitive = false );
/** 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.
* @param string input string
* @returns 4 letter Soundex code
*/
static QString soundex( const QString &string );
/** Returns a string with any URL (e.g., http(s)/ftp) and mailto: text converted to valid HTML <a ...>
* links.
* @param string string to insert links into
* @param foundLinks if specified, will be set to true if any links were inserted into the string
* @returns string with inserted links
* @note added in QGIS 3.0
*/
static QString insertLinks( const QString& string, bool* foundLinks = nullptr );
};