2012-08-01 73 views

回答

4
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]; 
+0

其实我已经在炎ABC文件名abc_1000.mp4是参考Id和1000是使用香精name.i'm(ΔP)_(ΔP)[] \ w {3,} /。 referenceId是组名,所以flavorName是。 – 2012-08-01 14:03:46

0
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 
] 
+0

我通过删除正则表达式来解决问题。 kaltura将其作为默认值 – 2012-09-13 12:30:05

0
/** 
* 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

相关问题