어떻게 하면 모든 것을 특정 캐릭터를 따라잡을 수 있을까요?
저는 끈이 있어서 모든 것을 일정한 값으로 사고 싶습니다.문자열은 항상 숫자 집합으로 시작하여 밑줄로 시작합니다.나머지 끈은 밑줄 뒤에 붙이고 싶어요.예를 들어, 다음과 같은 문자열이 있고 반환되는 문자열이 있는 경우:
"123_String" -> "String"
"233718_This_is_a_string" -> "This_is_a_string"
"83_Another Example" -> "Another Example"
어떻게 하면 이런 일을 할 수 있을까요?
는 언더스코어의 오프셋을 검출하고 그 인덱스에 1을 더한 값을 모두 가져옵니다.
$data = "123_String";
$whatIWant = substr($data, strpos($data, "_") + 1);
echo $whatIWant;
밑줄 문자(_
를 취득하기 전에 문자열에 존재합니다.다음 항목을 사용할 수 있습니다.
if (($pos = strpos($data, "_")) !== FALSE) {
$whatIWant = substr($data, $pos+1);
}
strtok
간과되는 기능이라고 생각합니다.그것은 꽤 빠르다고 여겨진다.
$s = '233718_This_is_a_string';
$firstPart = strtok( $s, '_' );
$allTheRest = strtok( '' );
이와 같은 빈 문자열은 나머지 문자열을 강제로 반환합니다.
'_' 뒤에 아무것도 없으면 NB를 얻을 수 있습니다.FALSE
의 가치를 인정하다.$allTheRest
이 값은 문서에 명시된 바와 같이 ===로 테스트하여 다른 거짓 값과 구별해야 합니다.
다음은 을 사용하는 방법입니다.explode
:
$text = explode('_', '233718_This_is_a_string', 2)[1]; // Returns This_is_a_string
또는 다음과 같이 입력합니다.
$text = end((explode('_', '233718_This_is_a_string', 2)));
지정함으로써2
를 위해limit
의 파라미터는 문자열 딜리미터로 구분된2개의 최대 요소를 포함하는 배열을 반환합니다.두 번째 요소 반환([1]
나머지 문자열이 표시됩니다.
다음은 를 사용한 또 다른 원라이너입니다.strpos
(@flu에서 제안):
$needle = '233718_This_is_a_string';
$text = substr($needle, (strpos($needle, '_') ?: -1) + 1); // Returns This_is_a_string
strchr()을 사용합니다.예를 들어 파일 확장자를 찾으려면 다음 함수를 사용합니다.
$string = 'filename.jpg';
$extension = strrchr( $string, '.'); //returns "jpg"
strchr() 또는 strstr()을 사용하는 다른 간단한 방법은 다음과 같습니다.
$str = '233718_This_is_a_string';
echo ltrim(strstr($str, '_'), '_'); // This_is_a_string
이 경우 ltrim()만으로 충분합니다.
echo ltrim($str, '0..9_'); // This_is_a_string
그러나 문자열의 오른쪽 부분(_ 뒤에 있음)이 숫자로 시작되지 않는 경우에만 문자열이 잘립니다.
현의 첫 부분을 뽑아야 할 사람이 있다면 시도해 볼 수 있습니다.
쿼리:
$s = "This_is_a_string_233718";
$text = $s."_".substr($s, 0, strrpos($s, "_"));
출력:
this_is_a_string
$string = "233718_This_is_a_string";
$withCharacter = strstr($string, '_'); // "_This_is_a_string"
echo substr($withCharacter, 1); // "This_is_a_string"
한 마디로 그렇게 될 것이다.
echo substr(strstr("233718_This_is_a_string", '_'), 1); // "This_is_a_string"
모든 문자를 특정 문자 뒤에 가져오고 해당 문자가 문자열의 선두에 있는 경우 다음과 같이 쉬운 솔루션을 사용할 수 있습니다.
$value = substr( '123_String', strlen( '123_' ) );
echo $value; // String
기호 뒤에 문자열을 반환하거나 문자가 발생하지 않으면 원래 문자열을 반환하려면 다음 행을 사용합니다.
$newString = substr($string, (strrpos($string, '_') ?: -1) +1);
언급URL : https://stackoverflow.com/questions/11405493/how-to-get-everything-after-a-certain-character
'programing' 카테고리의 다른 글
유니코드 문자열을 Python 문자열로 변환(추가 기호 포함) (0) | 2023.01.19 |
---|---|
'풀 수 있는 값이 너무 많다'는 식으로 반복됩니다.key=> 문자열, 값=> 목록 (0) | 2023.01.19 |
WHERE 절이 있는 MySql 내부 가입 (0) | 2023.01.19 |
오픈 소스 프로젝트에 참여하고 싶지만 내 특정 스킬에 맞는 제안을 원합니다. (0) | 2023.01.19 |
HTML 문자열을 DOM 요소로 변환하시겠습니까? (0) | 2023.01.19 |