문자열 내 특정 문자를 제거하는 방법을 알고 있지만 다음 사항에 대해서는 잘 모릅니다 :php 특정 문자 사이에서 문자를 제거합니다.
예 : 문자열 : Code
이 가능 : Code [7845] [5589] [554] [4]
내가 그들 사이의 모든 [
및 ]
의 인스턴스와 모든 것을 제거해야하고 그래서 간단하게 끝낼 공백을 잘라?
문자열 내 특정 문자를 제거하는 방법을 알고 있지만 다음 사항에 대해서는 잘 모릅니다 :php 특정 문자 사이에서 문자를 제거합니다.
예 : 문자열 : Code
이 가능 : Code [7845] [5589] [554] [4]
내가 그들 사이의 모든 [
및 ]
의 인스턴스와 모든 것을 제거해야하고 그래서 간단하게 끝낼 공백을 잘라?
는 다음과 같은 시도 :
$str = trim(preg_replace('/\[\d+\]/', '', 'your_string_here'));
함수의 첫 번째 인수는 정규식입니다. 숫자가 일치하는 \d
이 있고 그 뒤에 오는 +
은 적어도 하나의 숫자와 일치해야한다고 말합니다. preg_replace에 대한 자세한 내용은 Check here을 참조하십시오. Regex에 대한 자세한 내용은 Check here을 참조하십시오.
공백을 자르지 않습니다. – FailedDev
@FailedDev, yep이 대답을 편집했습니다. –
이 그것을 할 것입니다 :)
$result = preg_replace('/\[.*?\]|\s*/', '', $subject);
설명 : @Felix으로
"
\[ # Match the character “[” literally
. # Match any single character that is not a line break character
* # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
\] # Match the character “]” literally
"
이 상당히 쉬운 표현이다 지적한다. here을보고 다양한 기법을 익히십시오.
요구 사항에 대한 자세한 내용을 제공해야합니다.
가정 : 문자열이 항상 후이고 나머지는 항상 폐기 할 수있는 시작
$s = 'Code [7845] [5589] [554] [4]';
경우,이 아마도 가장 효율적인 것 :
$s = trim(substr($s, 0, strpos($s, '[')));
당신이 만약 원래 문자열을 유지하고 숫자 그룹 만 제거하려면 다음을 입력하십시오.
$s = trim(preg_replace('/\[\d+\]/', '', $s));
지금까지 해보신 것은 무엇입니까? 그것은 분명히 가능하며 단순한 표현 만 요구합니다. –