PHP 스크립트로 가져온 플랫 파일이 있습니다. 출력의PHP에서 대괄호 안에 들어있는 문자열의 마지막 부분을 어떻게 제거 하시겠습니까?
예 :
Forks [Office]
Glue [Crafts]
Jacks [Toy]
나는 각 줄의 끝에 괄호뿐만 아니라, 괄호 사이에 자신을 텍스트를 제거하고 싶습니다.
"rtrim"이라고 생각했지만 문자 길이가 다릅니다.
"폭발"일까요?
PHP 스크립트로 가져온 플랫 파일이 있습니다. 출력의PHP에서 대괄호 안에 들어있는 문자열의 마지막 부분을 어떻게 제거 하시겠습니까?
예 :
Forks [Office]
Glue [Crafts]
Jacks [Toy]
나는 각 줄의 끝에 괄호뿐만 아니라, 괄호 사이에 자신을 텍스트를 제거하고 싶습니다.
"rtrim"이라고 생각했지만 문자 길이가 다릅니다.
"폭발"일까요?
사용 preg_replace
$newValue = trim(preg_replace('/\\[([^\\]]*?)\\]/','',$oldValue));
이 정규식이 어떻게 작동하는지에 대한 설명 :
[]
그렇게 [^\]]
어떤 문자 가 닫는 대괄호가 아니라고 일치하는 문자의 범위를 일치 (당신이 []
은 정규 표현식 연산자이므로 백 슬래시를 사용하여 문자를 이스케이프 처리합니다. *
연산자는 0 또는 그 이상의 임의의 문자와 일치하도록 범위를 수정하고 ?
은 비 - 욕심 (첫 번째 ]
이 발견되면 중지됨). 이 모든 것을 그룹의 안에 넣고 ()
그리고 나서 당신이 찾고있는 것이 있습니다. 문자열의 내부에서 작동하도록 백 슬래시를 벗어나야합니다. 이 Regex Cheat Sheet은 빠른 참조를 위해 유용하지만 정규식을 처음 사용하는 방법에 대한 몇 가지 기사를 읽어야합니다. 프로그래머가 가질 수있는 가장 강력한 도구입니다. 각 라인 다음
루프 통 :
$line = substr($line, 0, strrpos($line, '['));
정규 표현식 아마 정규식 가장 쉬운 해결책처럼 보인다 제시카
[이전에 발생하면 strrpos를 사용합니다. http://www.php.net/manual/en/function.strrpos.php - 정규 표현식이 그것을 할 수있는 동안, 이것은 잘 작동 할 훨씬 간단한 해결책입니다. – Jessica
에 의해 제안 더 나은
strrpos에 strpos에서 편집 될 것이다. – j08691
무엇을 이미 시도 했습니까? – BenM
@BenM'rtrim'이고'explode'라고합니다. = p – Katana314