문자열의 일부를 어떻게 제거합니까?
문자열 예 : "REGISTER 11223344 here"
"11223344"
위 예제 문자열에서 어떻게 제거 할 수 있습니까?
REGISTER here
데이터베이스 에 저장하려는 이유는 무엇입니까?
문자열의 일부를 어떻게 제거합니까?
문자열 예 : "REGISTER 11223344 here"
"11223344"
위 예제 문자열에서 어떻게 제거 할 수 있습니까?
REGISTER here
데이터베이스 에 저장하려는 이유는 무엇입니까?
답변:
"11223344"를 구체적으로 타겟팅하는 경우 다음을 사용하십시오 str_replace
.
// str_replace($search, $replace, $subject)
echo str_replace("11223344", "","REGISTER 11223344 here");
str_replace ()를 사용할 수 있으며 다음과 같이 정의됩니다.
str_replace($search, $replace, $subject)
따라서 코드를 다음과 같이 작성할 수 있습니다.
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
정규식을 통해 더 나은 일치가 필요한 경우 preg_replace ()를 사용할 수 있습니다 .
str_replace(find, replace, string, count)
OP 예에 따라 :
$Example_string = "REGISTER 11223344 here";
$Example_string_PART_REMOVED = str_replace('11223344', '', $Example_string);
// will leave you with "REGISTER here"
// finally - clean up potential double spaces, beginning spaces or end spaces that may have resulted from removing the unwanted string
$Example_string_COMPLETED = trim(str_replace(' ', ' ', $Example_string_PART_REMOVED));
// trim() will remove any potential leading and trailing spaces - the additional 'str_replace()' will remove any potential double spaces
// will leave you with "REGISTER here"
규칙 기반 일치가 필요한 경우 정규식을 사용해야합니다.
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
첫 번째 숫자와 일치하므로 더 구체적으로 시도 해야하는 경우 :
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
$match
어레이가 팽창합니다 . 괄호를 제거하고를 통해 액세스하십시오 $match[0]
.
substr ()은 문자열의 일부를 반환하는 내장 PHP 함수입니다. substr () 함수는 문자열을 입력으로 사용하며, 문자열을자를 색인 형식입니다. 선택적 매개 변수는 부분 문자열의 길이입니다. http://php.net/manual/en/function.substr.php 에서 적절한 문서와 예제 코드를 볼 수 있습니다
참고 : 문자열의 색인은 0으로 시작합니다.
동적으로 문자열의 (a) 고정 인덱스에서 (a) 부분을 제거하려면이 함수를 사용하십시오.
/**
* Removes index/indexes from a string, using a delimiter.
*
* @param string $string
* @param int|int[] $index An index, or a list of indexes to be removed from string.
* @param string $delimiter
* @return string
* @todo Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function removeFromString(string $string, $index, string $delimiter = " "): string
{
$stringParts = explode($delimiter, $string);
// Remove indexes from string parts
if (is_array($index)) {
foreach ($index as $i) {
unset($stringParts[(int)($i)]);
}
} else {
unset($stringParts[(int)($index)]);
}
// Join all parts together and return it
return implode($delimiter, $stringParts);
}
당신의 목적을 위해 :
remove_from_str("REGISTER 11223344 here", 1); // Output: REGISTER here
사용법 중 하나는 구조와 같은 명령 같은 문자열을 실행하는 것입니다.
다음 스 니펫은 "REGISTER here"를 인쇄합니다.
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
preg_replace () API 사용법은 아래와 같습니다.
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
preg_replace()
이 경우 배열을 전달할 이유가 전혀 없습니다 . 캡처 그룹을 사용하는 것의 이점도 없습니다.
다음을 수행하십시오
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
"REGISTERhere"를 반환합니다.
또는
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
"REGISTER here"가 반환됩니다.
remove
있지만extract
대상 문자열을 데이터베이스에 저장할 수 있음 을 의미하는 것 같습니다 .