public function HumanNameParser_Name::chopWithRegex in Bibliography Module 7
Same name and namespace in other branches
- 6.2 includes/Name.php \HumanNameParser_Name::chopWithRegex()
Uses a regex to chop off and return part of the namestring There are two parts: first, it returns the matched substring, and then it removes that substring from $this->str and normalizes.
Parameters
string $regex: matches the part of the namestring to chop off.
int $submatchIndex: which of the parenthesized submatches to use.
string $regexFlags: optional regex flags.
Return value
string the part of the namestring that got chopped off
File
- includes/
Name.php, line 55
Class
- HumanNameParser_Name
- Does cutting and matching stuff with a name string. Note that the string has to be UTF8-encoded.
Code
public function chopWithRegex($regex, $submatchIndex = 0, $regexFlags = '') {
// Unicode + case-insensitive.
$regex = $regex . "ui" . $regexFlags;
preg_match($regex, $this->str, $m);
$subset = isset($m[$submatchIndex]) ? $m[$submatchIndex] : '';
if ($subset) {
$this->str = preg_replace($regex, ' ', $this->str, -1, $numReplacements);
if ($numReplacements > 1) {
throw new Exception("The regex being used to find the name: '{$this->str}' has multiple matches.");
}
$this
->norm();
return $subset;
}
else {
return '';
}
}