대문자 앞에 공백 삽입
대문자와 소문자가 포함된 텍스트를 처리할 때 공백을 추가하여 단어를 구분하는 것이 바람직한 경우가 많습니다. 대문자 앞에. 이렇게 하면 가독성이 향상되고 다른 단어를 더 쉽게 구별할 수 있습니다.
정규식 방법
일반적인 접근 방식 중 하나는 정규식을 사용하여 대문자를 검색하고 바꾸는 것입니다. 소문자로 시작됩니다. 다음 정규식은 소문자 앞에 오는 모든 대문자와 일치합니다.
[A-Z]
이러한 대문자 앞에 공백을 삽입하려면 다음 대체 패턴을 사용할 수 있습니다.
\s<pre class="brush:php;toolbar:false">System.Text.RegularExpressions.Regex.Replace(value, "[A-Z]", "\s<pre class="brush:php;toolbar:false">string AddSpacesToSentence(string text, bool preserveAcronyms) { if (string.IsNullOrWhiteSpace(text)) return string.Empty; StringBuilder newText = new StringBuilder(text.Length * 2); newText.Append(text[0]); for (int i = 1; i < text.Length; i++) { if (char.IsUpper(text[i])) if ((text[i - 1] != ' ' && !char.IsUpper(text[i - 1])) || (preserveAcronyms && char.IsUpper(text[i - 1]) && i < text.Length - 1 && !char.IsUpper(text[i + 1]))) newText.Append(' '); newText.Append(text[i]); } return newText.ToString(); }")
이것은 대체 패턴은 s 문자 클래스를 사용하여 일치하는 대문자 앞에 공백을 삽입하고 $0은 일치하는 하위 문자열을 나타냅니다. 다음은 이 정규 표현식을 사용하는 예입니다.
수동 방법
정규 표현식은 효과적일 수 있지만 성능 측면에서 복잡하고 비용이 많이 들 수도 있습니다. 다른 접근 방식은 문자열을 문자별로 수동으로 반복하고 필요에 따라 공백을 삽입하는 것입니다. 다음 코드 조각은 이 방법을 보여줍니다.
이 코드는 문자열의 각 문자를 반복하여 대문자인지 확인합니다. 앞에 소문자가 있는 경우(preserveAcronyms 매개변수가 true로 설정되고 이전 문자도 대문자인 경우 제외) 공백이 삽입됩니다.
성능 고려 사항
정규식 방법은 특히 큰 문자열의 경우 수동 방법보다 상당히 느릴 수 있습니다. 그러나 수동 방법은 더 복잡하고 일부 개발자의 경우 읽기가 어려울 수 있습니다. 궁극적으로 이 두 가지 방법 중 가장 좋은 선택은 특정 프로젝트의 성능 요구 사항과 가독성 기본 설정에 따라 달라집니다.
위 내용은 문자열에서 대문자 앞에 공백을 효율적으로 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!