Ciąg, który testuję, może być dopasowany do [\w-]+
. Czy mogę przetestować, czy ciąg jest zgodny z tym w Pythonie, zamiast listy niedozwolonych znaków i testowania?Jak sprawdzić, czy ciąg zawiera tylko znaki alfanumeryczne i myślniki?
Odpowiedz
Jeśli chcesz przetestować ciąg przeciwko wyrażenia regularnego, korzystania z biblioteki re
import re
valid = re.match('^[\w-]+$', str) is not None
Python wyrażenia regularnego, a także:
import re
if re.match('^[\w-]+$', s):
...
Lub można utworzyć listę dozwolonych znaki:
from string import ascii_letters
if all(c in ascii_letters+'-' for c in s):
...
re.match ('^ [\ w -] + $', s) zwraca odpowiednią instancję MatchObject. Zwraca None, jeśli ciąg nie pasuje do wzorca. Powinny być porównywane z None. – Temak
@Enor Dlaczego? Każdy obiekt dopasowania będzie prawdą, None jest jedyną możliwą wartością falsyfikacji. –
Aby sprawdzić, czy ciąg zawiera tylko alfanumeryczną i kreski, użyłbym
import re
found_s = re.findall('^[\w-]+$', s)
valid = bool(found_s) and found_s[0] == s
oops nieważne, tak niepotrzebne – richard
bez importowania dowolny moduł tylko przy użyciu czystego Python, usunąć none alfa numeryczny z wyjątkiem myślnikami.
string = '#Remove-*crap?-from-this-STRING-123$%'
filter_char = lambda char: char.isalnum() or char == '-'
filter(filter_char, string)
# This returns--> 'Remove-crap-from-this-STRING-123'
Lub w jednym wierszu:
''.join([c for c in string if c.isalnum() or c in ['-']])
To powinno być zaakceptowaną odpowiedzią, nie potrzebujesz wyrażeń regularnych ani zewnętrznych pakietów, aby rozwiązać ten problem. – Roganartu
- 1. Jak sprawdzić, czy ciąg zawiera tylko znaki alfanumeryczne w obiektywnym C?
- 2. Jak sprawdzić, czy ciąg zawiera tylko cyfry/znaki numeryczne?
- 3. Sprawdź, czy ciąg zawiera tylko znaki ASCII?
- 4. Jak mogę sprawdzić, czy ciąg zawiera znaki wielobajtowe w JavaScript?
- 5. Jak mogę sprawdzić, czy ciąg znaków zawiera znaki i spacje, a nie tylko białe spacje?
- 6. Jak mogę sprawdzić, czy ciąg zawiera tylko litery?
- 7. Sprawdź, czy ciąg zawiera znaki spoza cyfr
- 8. Jak mogę sprawdzić, czy ciąg zawiera tylko litery w Pythonie?
- 9. Jak sprawdzić ciąg zawiera tylko cyfry i miejsca dziesiętne?
- 10. Jak sprawdzić w JavaScript że ciąg zawiera znaki alfabetu
- 11. ciąg zawiera tylko alfabety
- 12. java - Jak sprawdzić, czy ciąg zawiera zarówno literę i numer
- 13. Jak sprawdzić, czy tekst zawiera tylko liczby?
- 14. Sprawdź, czy ciąg zawiera tylko zestaw liter
- 15. SELECT tylko wiersze, które zawierają tylko znaki alfanumeryczne w MySQL
- 16. sprawdzić, czy ciąg zawiera numer większy niż
- 17. Jak ustalić, czy ciąg ma niealfanumeryczne znaki?
- 18. Aby sprawdzić, czy ciąg zawiera określone słowo
- 19. Sprawdź, czy ciąg zawiera wszystkie znaki innego ciągu w Ruby
- 20. Jak sprawdzić, czy ciąg zawiera znaki inne niż określone. (w Javie)
- 21. Zezwalaj tylko na znaki alfanumeryczne w polu tekstowym
- 22. Jak mogę sprawdzić, czy ciąg zawiera znaki białych znaków/znaków alfanumerycznych/etc?
- 23. Umożliwienie tylko alfanumeryczne wartości
- 24. sprawdzić, ile razy ciąg zawiera znak „g” w kwalifikujących ciąg
- 25. Jak sprawdzić, czy tablica znaków zawiera jeden ciąg w JavaScript?
- 26. Ruby - Jak sprawdzić, czy ciąg zawiera wszystkie słowa w tablicy?
- 27. Ruby: Jak sprawdzić, czy ciąg zawiera wiele elementów?
- 28. Jak mogę sprawdzić, czy tablica ciągów zawiera określony ciąg znaków?
- 29. Jak mogę sprawdzić, czy ciąg znaków zawiera DOWOLNE litery alfabetu?
- 30. Jak sprawdzić, czy TextView zawiera określony ciąg znaków
bez podania locale znaków alfanumerycznych pasuje tylko '[a-zA-Z0-9] +' nie '[\ w] +'. – greg