2013-07-30 5 views
-6

내가 텍스트 문자열을파이썬은 다시 : 일부 단어를 소문자로 어떻게

"StringText someText Wwwwww SomeOtherText OtherText SOMETextMore etc etc etc" 

을 가지고 "S"또는 "S"로 시작하는 모든 단어를 소문자로 필요하다고. 하지만 다른 말은하지 않습니다. Pls는 re 코드를 사용합니다 (re를 사용하는 것이 더 좋으며, chars, pls를 대체하는 일반 루프가 아닙니다). Py2x. 정규식을 사용하여

+0

우리는 당신을 위해 일을 여기 아니에요. * 무언가를 시도해야합니다. – thegrinner

+0

맞습니다.하지만 모든 '하위'기능에 대해 알지 못했습니다. – Prog1020

+0

몇 가지 코드를 작성하는 것처럼 보입니다. 대부분의 사용자는 곤경에 처한 코더 코드를 기꺼이 만들지 만 일반적으로 포스터가 이미 문제를 해결하려고 시도했을 때만 도움이됩니다. 이러한 노력을 입증하는 좋은 방법은 지금까지 작성한 코드, 예제 입력 (있는 경우), 예상 출력 및 실제로 얻은 출력 (콘솔 출력, 스택 추적, 컴파일러 오류 등)을 포함시키는 것입니다. 응용할 수 있는). 더 자세하게 제공할수록 더 많은 답변을받을 수 있습니다. –

답변

5

구인 솔루션은 여기에 있습니다 :

>>> import re 
>>> s = "StringText someText Wwwwww SomeOtherText OtherText SOMETextMore etc etc etc" 
>>> def replacement(match): 
... return match.group(1).lower() 
>>> re.sub(r'([sS]\w+)', replacement, s) 
'stringtext sometext Wwwwww someothertext OtherText sometextmore etc etc etc' 
+1

+1. 그냥 신인 Regex 질문, 그래도 - 당신의 정규식이 이것과 비슷합니까 - 'r'\ b ([Ss]. *?) \ b''? 감사. :) –

+1

왜 [sS] 뒤에 "+"가 있습니까? 're (r '([sS] \ w +)', replacement, s)'도 같은 결과를 얻을 수있다. – iCodez

+0

예,이 경우 동일한 결과가 생성됩니다. 단어 경계로'\ b'를 명시 적으로 사용하는 것이 더 좋을 수도 있습니다. – alecxe

관련 문제