문자열이 "How are you"
입니다. 이 문자열은 "How-are-you"
이되어야합니다. 정규식을 사용하는 것이 가능합니까? 방법?공백을 하이픈으로 바꾸기
>>> import re
>>> s = "How are you"
>>> print re.sub('\s', '-', s)
How-are-you
문자열이 "How are you"
입니다. 이 문자열은 "How-are-you"
이되어야합니다. 정규식을 사용하는 것이 가능합니까? 방법?공백을 하이픈으로 바꾸기
>>> import re
>>> s = "How are you"
>>> print re.sub('\s', '-', s)
How-are-you
당신은 정규식을 사용하여 질문으로?
x = "How are you"
print "-".join(x.split())
--output:--
How-are-you
왜 정규식을 사용
그냥 방법 대신 내장 비단뱀을 사용
# To replace *the* space character only
>>> re.sub(' ', '-', "How are you");
# To replace any "blank" character (space, tab, ...):
>>> re.sub('\s', '-', "How are you");
# To replace any sequence of 1 or more "blank" character (space, tab, ...) by one hyphen:
>>> re.sub('\s+', '-', "How are you");
# To replace any sequence of 1 or more "space" by one hyphen:
>>> re.sub(' +', '-', "How are you");
참고 : 당신의 정확한 필요에 따라
strs = "How are you"
new_str = strs.replace(" ","-")
print new_str // "How-are-you"
을, 그 테마에 많은 변화 사용하여 정규 표현식이있다 "단순한"대체를 위해서는 replace이 정규 표현식을 사용하는 것보다 더 적합 할 것입니다 (이들은 입니다. 강력하지만 처리하기 전에 컴파일 단계가 필요하므로 비용이 많이 듭니다. 비록 이것이 간단한 경우에 당신의 프로그램에 정말로 영향을 미칠지 확신하지는 못했지만 ...;). 마지막으로 하나 특별한 경우 나 공백의 시퀀스를 교체하기위한, 아무 것도 아마 x.join(str.split())
...
을 이길 수있는 또 다른 옵션은 replace
$ python -m timeit 'a="How are you"; a.replace(" ", "-")'
1000000 loops, best of 3: 0.335 usec per loop
$ python -m timeit 'a="How are you"; "-".join(a.split())'
1000000 loops, best of 3: 0.589 usec per loop
그래도 대답은 13 분만에 Bryan에게 2 분이 남았습니다. split()은 replace()보다 몇 가지 장점이 있습니다. 단어 사이에 하나 이상의 공간 또는 탭이있을 수 있습니다. – 7stud
는 당신이 공간을 대체 간단한보고 시도 가지고있다 '-'. – aweis
''두 칸 '''이되기를 원합니까? ''2 공백 ''또는''2 공백''? ''space와 \ ttab "는 어떨까요? ''space-and-tab ''또는''space-and \ ttab''와 같이? – DSM