我在kaltura中有一個文件名約定{referenceId} _ {flavor name} .mp4。 或者如果你熟悉kaltura然後告訴我slugRegex我可以使用這個命名約定,將支持預編碼的文件攝入正則表達式匹配patern之前和之後的下劃線
我必須從中提取referenceId和文件名。
我使用
/(?P)_(?P)[.]\w{3,}/
我在kaltura中有一個文件名約定{referenceId} _ {flavor name} .mp4。 或者如果你熟悉kaltura然後告訴我slugRegex我可以使用這個命名約定,將支持預編碼的文件攝入正則表達式匹配patern之前和之後的下劃線
我必須從中提取referenceId和文件名。
我使用
/(?P)_(?P)[.]\w{3,}/
var filename = "referenceId_flavor-name.mp4";
var parts = filename.match(/([^_]+)_([^.]+)\.(\w{3})/i);
// parts is an array with 4 elements
// ["referenceId_flavor-name.mp4", "referenceId", "flavor-name", "mp4];
var file = 'refID_name.mp4',
parts = file.match(/^([^_]+)_(.+)\.mp4/, file);
返回數組:
[
'refID_name.mp4', //the whole match is always match 0
'refID', //sub-match 1
'name' //sub-match 2
]
我通過刪除正則表達式來解決問題。 kaltura將其作爲默認值 – 2012-09-13 12:30:05
/**
* Parse file name according to defined slugRegex and set the extracted parsedSlug and parsedFlavor.
* The following expressions are currently recognized and used:
* - (?P<referenceId>\w+) - will be used as the drop folder file's parsed slug.
* - (?P<flavorName>\w+) - will be used as the drop folder file's parsed flavor.
* - (?P<userId>\[\w\@\.]+) - will be used as the drop folder file entry's parsed user id.
* @return bool true if file name matches the slugRegex or false otherwise
*/
private function parseRegex(DropFolderContentFileHandlerConfig $fileHandlerConfig, $fileName, &$parsedSlug, &$parsedFlavor, &$parsedUserId)
{
$matches = null;
$slugRegex = $fileHandlerConfig->getSlugRegex();
if(is_null($slugRegex) || empty($slugRegex))
{
$slugRegex = self::DEFAULT_SLUG_REGEX;
}
$matchFound = preg_match($slugRegex, $fileName, $matches);
KalturaLog::debug('slug regex: ' . $slugRegex . ' file name:' . $fileName);
if ($matchFound)
{
$parsedSlug = isset($matches[self::REFERENCE_ID_WILDCARD]) ? $matches[self::REFERENCE_ID_WILDCARD] : null;
$parsedFlavor = isset($matches[self::FLAVOR_NAME_WILDCARD]) ? $matches[self::FLAVOR_NAME_WILDCARD] : null;
$parsedUserId = isset($matches[self::USER_ID_WILDCARD]) ? $matches[self::USER_ID_WILDCARD] : null;
KalturaLog::debug('Parsed slug ['.$parsedSlug.'], Parsed flavor ['.$parsedFlavor.'], parsed user id ['. $parsedUserId .']');
}
if(!$parsedSlug)
$matchFound = false;
return $matchFound;
}
是與正則表達式交易的代碼。我用/(?P<referenceId>.+)_(?P<flavorName>.+)[.]\w{3,}/
並按照本教程enter link description here
其實我已經在炎ABC文件名abc_1000.mp4是參考Id和1000是使用香精name.i'm(ΔP)_(ΔP)[] \ w {3,} /。 referenceId是組名,所以flavorName是。 –
2012-08-01 14:03:46