'User Name'과 같은 텍스트 문자열을 URL의 일부 (예 : 'User-Name')로 변환 할 수 있습니다. 캐릭터가 [a-zA-Z0-9]인지 확인하는 것뿐만 아니라 문자열 대체 ("-"는 "")를하는 가장 빠른 방법은 무엇입니까?텍스트 문자열을 URL 변수로 변환하는 가장 빠른 방법은 무엇입니까?
2
A
답변
3
string.translate는 이러한 종류의 문제 (문자열이 유니 코드가 아니라고 가정)에 대한 가장 빠른 해결책입니다.
def translate(x):
if x == ' ': return '-'
if 'a' <= x <= 'z': return x
if 'A' <= x <= 'Z': return x
if '0' <= x <= '9': return x
def mk_translator():
translations = ''.join(translate(chr(c)) or chr(c) for c in xrange(256))
deletions = ''.join(chr(c) for c in xrange(256) if translate(chr(c)) is None)
return translations, deletions
def urlize(x, translator=mk_translator()):
return x.translate(*translator)
print urlize('User Name')
+0
글자, 숫자 및 문자를 사용할 수 있으므로 내 대답이 삭제되었습니다. –
0
나는 그 목적을 위해이 기능을 사용하고 있습니다 :
import unicodedata
def slugify(item):
ret = item.lower().replace(u' ', u'_')
return unicodedata.normalize('NFKD', ret).encode('ascii', 'ignore')
나는 그것이하지만, 가장 빠른 방법입니다 있는지 확실하지 않습니다.
1
urllib.quote은 공백을 대시로 사용하지 않고 % 20으로 바꿉니다. 단,이 값은 문자열의 안전을 위해 제작되었습니다.
0
나는 간편성과 안전성을 위해 Ofri의 버전을 좋아하고 공백을 만들기위한 user97370 버전을 좋아합니다.
왜 둘 다 가지지 않습니까? , 즉
import string, urllib
trans = string.maketrans(' ', '-')
x = 'a sentence with a bunch of spaces'
x2 = x.translate(trans)
x3 = urllib.quote(x2)
print x3 #--> 'a-sentence-with-a-bunch-of-spaces'
을 하나의 방법 다음 다른 작업을 수행합니다
나는 이런 식으로 할 것. 은 URL 문자열에서 사용하는 것이 안전해야합니다. 각각에 대해 새로운 매개 변수를 만들 필요가 없습니다. 단지 x
을 다시 만들 수 있습니다. x2
및 을 사용하여 명확하게 만듭니다. 공백 이외의 것들이 있다면, 번역 매트릭스에 다른 것들을 추가 할 수도 있습니다.
관련 문제
- 1. float로 변환하는 가장 빠른 방법은
- 2. 이 날짜/시간 문자열을 Java 날짜 변수로 변환하는 방법은 무엇입니까?
- 3. 텍스트 파일에서 부분 문자열을 찾는 가장 빠른 방법
- 4. 가장 빠른 저장 방법은 무엇입니까?
- 5. 문자열을 배열로 변환하는 방법은 무엇입니까?
- 6. 문자열을 NSDate로 변환하는 방법은 무엇입니까?
- 7. PHP에서 문자열을 바꾸는 가장 빠른 방법
- 8. 스칼라 속성을 MSBUILD의 항목 목록으로 변환하는 가장 빠른 방법은 무엇입니까
- 9. DataTable을 XML로 변환하는 변경 및 가장 빠른 방법은 무엇입니까?
- 10. ushort를 C#의 바이트로 변환하는 가장 빠른 방법은 무엇입니까?
- 11. 문자열 목록을 단일 연결된 문자열로 변환하는 가장 빠른 방법은 무엇입니까?
- 12. DataTable에서 일반 목록으로 변환하는 가장 빠른 방법은 무엇입니까?
- 13. 큰 XML 파일을 SQLite 파일로 변환하는 가장 빠른 방법은 무엇입니까?
- 14. 안드로이드에서 JSONObject에 가장 빠른 방법 문자열을 찾으십시오.
- 15. 문자열을 변수로 변환하는 방법, vb6/C#/C++?
- 16. Google 검색을위한 URL 목록을 얻는 가장 빠른 방법은 무엇입니까?
- 17. 가장 빠른 방법은 파이썬
- 18. 문자열을 mysql 날짜로 변환하는 가장 좋은 방법은 무엇입니까?
- 19. Assetic 애셋에서 JavaScript 리터럴 문자열을 변환하는 가장 좋은 방법은 무엇입니까?
- 20. C#에서 문자열을 숫자로 변환하는 가장 좋은 방법은 무엇입니까?
- 21. 자바 스크립트에서 객체의 배열로 문자열을 변환하는 가장 좋은 방법은 무엇입니까?
- 22. JavaScript에서 문자열을 XML 객체로 변환하는 방법은 무엇입니까?
- 23. JSON 문자열을 javascript 객체로 변환하는 방법은 무엇입니까?
- 24. 부동 소수점을 부호없는 변수로 변환하는 방법은 무엇입니까?
- 25. 유니 코드 문자열을 char로 변환하는 방법은 무엇입니까?
- 26. 태그가있는 문자열을 xml로 변환하는 방법은 무엇입니까?
- 27. XML을 구문 분석하는 가장 빠른 방법은 무엇입니까?
- 28. RouteValueDictionary를 익명 객체로 변환하는 빠른 방법은 무엇입니까?
- 29. PHP에서 하위 문자열을 변수로 바꾸는 방법은 무엇입니까?
- 30. Windows.Forms에서 이미지를 페인트하는 가장 빠른 방법은 무엇입니까?
왜 가장 빠른 방법이 필요합니까? URL 인코딩이 모든 애플리케이션의 병목 현상이 될 가능성은 극히 낮습니다. –