2016-04-17 15 views
-2

Ich muss eine Zeile der Eingabe groß schreiben, aber wenn ich nur die Funktion() verwenden, werden Link-Adressen groß geschrieben, so dass sie unbrauchbar machen.Großgeschriebenen Text ohne Großschreibung von Links in Python

Zum Beispiel: "Cool Video www.youtube.com/watch?v=dQw4w9WgXcQ"

wird sich an: "COOL VIDEO WWW.YOUTUBE.COM/WATCH?V=DQW4W9WGXCQ"

Die Linkadresse hat Änderungen und wird nicht mehr funktionieren. Gibt es eine Möglichkeit, Links zu ignorieren?

+0

Es gibt keine Möglichkeit, * "Links zu ignorieren" * als solche, denn soweit es Python betrifft, ist es nur mehr Text. Sie müssten etwas schreiben, um die spezifischen Teile der Zeichenkette zu extrahieren, die Sie nicht groß schreiben wollen, die Sie getrennt behandeln und dann wieder zusammenfügen müssen. – jonrsharpe

+0

Welchen Teil möchten Sie hier groß schreiben? ... –

+0

@IronFist Alles außer Links – sagiksp

Antwort

0

Wenn ich richtig war Ihr Ziel ist hier zu verstehen, dann zuerst für den Teil der Zeichenfolge upper Fall schauen Sie sollen und traten dann mit dem Rest des Rücken Original-Zeichenkette, auf diese Weise:

>>> import re 
>>> s = "Cool Video -> www.youtube.com/watch?v=dQw4w9WgXcQ" 
>>> #Look for the part of string you want to upper case 
>>> m = re.search(r'^.*(?=\s+->)', s) 
>>> m 
<_sre.SRE_Match object; span=(0, 10), match='Cool Video'> 
>>> #m.start() and m.end() will give you start and endo position of matched string. 
>>> new_s = s[m.start():m.end()].upper() + s[m.end():] 
>>> #remember that strings are immutable, so make new one 
>>> new_s 
'COOL VIDEO -> www.youtube.com/watch?v=dQw4w9WgXcQ' 
>>> #OR 
>>> new_s = m.group().upper() + s[m.end():] 
>>> new_s 
'COOL VIDEO -> www.youtube.com/watch?v=dQw4w9WgXcQ' 

EDIT:

Otherway, ist für Zeichenfolge suchen einen Link vor und wenden Sie dann upper Methode darauf:

+0

Es gibt keinen Abschlag. "Cooles Video -> Link" war nur ein Beispiel. – sagiksp

+0

@sageek .. bitte bearbeiten Sie Ihre Fragen mit einem besseren Beispiel beschreiben * besser * Ihre Anforderungen! –

+0

@sageek ... überprüfen Sie die bearbeitete Antwort mit einer alternativen Lösung –

0

Man könnte so etwas wie dies versucht:

link = "www.youtube.com/watch?v=dQw4w9WgXcQ" 
text = upper("cool video -> ") + link 
+0

Aber das ist Eingabe. Es ist eine einzeilige Zeichenfolge. – sagiksp