"\\1", // the pattern for underline (__...__) must come before the one for italic (_..._)
"/_(.+?)_/" => "\\1",
"/\\*\\*(.+?)\\*\\*/" => "\\1",
"/\\[super:(.+?)\\]/i" => "\\1",
"/\\[sub:(.+?)\\]/i" => "\\1",
"/\\[permil\\]/" => "‰",
"/\\[infinity\\]/" => "∞",
"/\\[alpha\\]/" => "α",
"/\\[beta\\]/" => "β",
"/\\[gamma\\]/" => "γ",
"/\\[delta\\]/" => "δ",
"/\\[epsilon\\]/" => "ε",
"/\\[zeta\\]/" => "ζ",
"/\\[eta\\]/" => "η",
"/\\[theta\\]/" => "θ",
"/\\[iota\\]/" => "ι",
"/\\[kappa\\]/" => "κ",
"/\\[lambda\\]/" => "λ",
"/\\[mu\\]/" => "μ",
"/\\[nu\\]/" => "ν",
"/\\[xi\\]/" => "ξ",
"/\\[omicron\\]/" => "ο",
"/\\[pi\\]/" => "π",
"/\\[rho\\]/" => "ρ",
"/\\[sigmaf\\]/" => "ς",
"/\\[sigma\\]/" => "σ",
"/\\[tau\\]/" => "τ",
"/\\[upsilon\\]/" => "υ",
"/\\[phi\\]/" => "φ",
"/\\[chi\\]/" => "χ",
"/\\[psi\\]/" => "ψ",
"/\\[omega\\]/" => "ω",
"/\\[Alpha\\]/" => "Α",
"/\\[Beta\\]/" => "Β",
"/\\[Gamma\\]/" => "Γ",
"/\\[Delta\\]/" => "Δ",
"/\\[Epsilon\\]/" => "Ε",
"/\\[Zeta\\]/" => "Ζ",
"/\\[Eta\\]/" => "Η",
"/\\[Theta\\]/" => "Θ",
"/\\[Iota\\]/" => "Ι",
"/\\[Kappa\\]/" => "Κ",
"/\\[Lambda\\]/" => "Λ",
"/\\[Mu\\]/" => "Μ",
"/\\[Nu\\]/" => "Ν",
"/\\[Xi\\]/" => "Ξ",
"/\\[Omicron\\]/" => "Ο",
"/\\[Pi\\]/" => "Π",
"/\\[Rho\\]/" => "Ρ",
"/\\[Sigma\\]/" => "Σ",
"/\\[Tau\\]/" => "Τ",
"/\\[Upsilon\\]/" => "Υ",
"/\\[Phi\\]/" => "Φ",
"/\\[Chi\\]/" => "Χ",
"/\\[Psi\\]/" => "Ψ",
"/\\[Omega\\]/" => "Ω",
"/(?:\"|")(.+?)(?:\"|")/" => "“\\1”",
"/ +- +/" => " – "
);
// EXTRACT AUTHOR'S LAST NAME
// this function takes the contents of the author field and will extract the last name of a particular author (specified by position)
// (e.g., setting '$authorPosition' to "1" will return the 1st author's last name)
// Note: this function assumes that:
// 1. within one author object, there's only *one* delimiter separating author name & initials!
// 2. author objects are stored in the db as "", i.e., initials follow *after* the author's name!
// Required Parameters:
// 1. pattern describing delimiter that separates different authors
// 2. pattern describing delimiter that separates author name & initials (within one author)
// 3. position of the author whose last name shall be extracted (e.g., "1" will return the 1st author's last name)
// 4. contents of the author field
public static function extractAuthorsLastName( $oldBetweenAuthorsDelim, $oldAuthorsInitialsDelim, $authorPosition, $authorContents ) {
$authorsArray = preg_split( "/" . $oldBetweenAuthorsDelim . "/", $authorContents ); // get a list of all authors for this record
$authorPosition = $authorPosition - 1; // php array elements start with "0", so we decrease the authors position by 1
$singleAuthor = $authorsArray[$authorPosition]; // for the author in question, extract the full author name (last name & initials)
$singleAuthorArray = preg_split( "/" . $oldAuthorsInitialsDelim . "/", $singleAuthor ); // then, extract author name & initials to separate list items
$singleAuthorsLastName = $singleAuthorArray[0]; // extract this author's last name into a new variable
return $singleAuthorsLastName;
}
// EXTRACT AUTHOR'S GIVEN NAME
// this function takes the contents of the author field and will extract the given name of a particular author (specified by position)
// (e.g., setting '$authorPosition' to "1" will return the 1st author's given name)
// Required Parameters:
// 1. pattern describing delimiter that separates different authors
// 2. pattern describing delimiter that separates author name & initials (within one author)
// 3. position of the author whose last name shall be extracted (e.g., "1" will return the 1st author's last name)
// 4. contents of the author field
public static function extractAuthorsGivenName( $oldBetweenAuthorsDelim, $oldAuthorsInitialsDelim, $authorPosition, $authorContents ) {
$authorsArray = preg_split( "/" . $oldBetweenAuthorsDelim . "/", $authorContents ); // get a list of all authors for this record
$authorPosition = $authorPosition - 1; // php array elements start with "0", so we decrease the authors position by 1
$singleAuthor = $authorsArray[$authorPosition]; // for the author in question, extract the full author name (last name & initials)
$singleAuthorArray = preg_split( "/" . $oldAuthorsInitialsDelim . "/", $singleAuthor ); // then, extract author name & initials to separate list items
if ( !empty($singleAuthorArray[1]) ) {
$singleAuthorsGivenName = $singleAuthorArray[1]; // extract this author's last name into a new variable
} else {
$singleAuthorsGivenName = '';
}
return $singleAuthorsGivenName;
}
// Perform search & replace actions on the given text input:
// ('$includesSearchPatternDelimiters' must be a boolean value that specifies whether the leading and trailing slashes
// are included within the search pattern ['true'] or not ['false'])
public static function searchReplaceText( $sourceString, $includesSearchPatternDelimiters ) {
// apply the search & replace actions defined in '$transtab_refbase_html' to the text passed in '$sourceString':
foreach ( self::$transtab_refbase_html as $searchString => $replaceString ) {
if ( !$includesSearchPatternDelimiters ) {
$searchString = "/" . $searchString . "/"; // add search pattern delimiters
}
if ( preg_match($searchString, $sourceString ) ) {
$sourceString = preg_replace( $searchString, $replaceString, $sourceString );
}
}
return $sourceString;
}
}