删除公共前缀或后缀

时间:2015-06-02 07:37:21

标签: sas

我有一个数据集包含一个名为的系列变量; <?php class Xyz extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('image'); } public function upload() { // Access the $_FILES global variable for this specific file being uploaded // and create local PHP variables from the $_FILES array of information $fileName = $_FILES["uploaded_file"]["name"]; // The file name $fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"]; // File in the PHP tmp folder $fileType = $_FILES["uploaded_file"]["type"]; // The type of file it is $fileSize = $_FILES["uploaded_file"]["size"]; // File size in bytes $fileErrorMsg = $_FILES["uploaded_file"]["error"]; // 0 for false... and 1 for true $kaboom = explode(".", $fileName); // Split file name into an array using the dot $fileExt = end($kaboom); // Now target the last array element to get the file extension // START PHP Image Upload Error Handling -------------------------------------------------- if (!$fileTmpLoc) { // if file not chosen echo "ERROR: Please browse for a file before clicking the upload button."; exit(); } else if($fileSize > 5242880) { // if file size is larger than 5 Megabytes echo "ERROR: Your file was larger than 5 Megabytes in size."; unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder exit(); } else if (!preg_match("/.(gif|jpg|png)$/i", $fileName) ) { // This condition is only if you wish to allow uploading of specific file types echo "ERROR: Your image was not .gif, .jpg, or .png."; unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder exit(); } else if ($fileErrorMsg == 1) { // if file upload error key is equal to 1 echo "ERROR: An error occured while processing the file. Try again."; exit(); } // END PHP Image Upload Error Handling ---------------------------------------------------- // Place it into your "uploads" folder mow using the move_uploaded_file() function $moveResult = move_uploaded_file($fileTmpLoc, "uploads/$fileName"); // Check to make sure the move result is true before continuing if ($moveResult != true) { echo "ERROR: File not uploaded. Try again."; unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder exit(); } unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder $target_file = "uploads/$fileName"; $resized_file = "uploads/resized_$fileName"; $wmax = 2500; $hmax = 900; ak_img_resize($target_file, $resized_file, $wmax, $hmax, $fileExt); // ----------- End Universal Image Resizing Function ----------- // Display things to the page so you can see what is happening for testing purposes echo "The file named <strong>$fileName</strong> uploaded successfuly.<br /><br />"; echo "It is <strong>$fileSize</strong> bytes in size.<br /><br />"; echo "It is an <strong>$fileType</strong> type of file.<br /><br />"; echo "The file extension is <strong>$fileExt</strong><br /><br />"; echo "The Error Message output for this upload is: $fileErrorMsg"; } } 具有相同的后缀PG_86xt, AG_86xt,...。如何在重命名这些变量时删除此类后缀?

我知道如何add prefix or suffix。但删除它们的逻辑似乎有点不同。我认为_86xt仍然是可行的方法。但是后缀之前(或前缀之后)的子串长度是未知的。

关于如何添加前缀或后缀

的示例
proc dataset modify

2 个答案:

答案 0 :(得分:2)

您可以使用scan功能获得所需的结果。

通过更改链接中的示例来适合您的示例:

data one;
input id name :$10. age PG_86xt AG_86xt IG_86xt;
datalines;
1 George 10 85 90 89
2 Mary 11 99 98 91
3 John 12 100 100 100
4 Susan 11 78 89 100
;
run;

只过滤那些符合您惯例的列(XX_86xt),您可以使用扫描的第一部分进行重命名。

proc sql noprint;
select cats(name,'=',scan(name, 1, '_'))
into :suffixlist
separated by ' '
from dictionary.columns
where libname = 'WORK' and memname = 'ONE' and '86xt' = scan(name, 2, '_');
quit;

答案 1 :(得分:1)

您可以使用index函数在每个变量名称中找到后缀/前缀开头的(第一个)位置,然后使用它来构造substr的适当参数。这比你的例子中的代码要多一些,但你会到达那里。