Wyrażenie regularne (dopasowanie)

Wyrażenie regularne (dopasowanie)
PapiVPG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0
Kopiuj
regex key("Male[^ ]?|Female[^ ]?|U[^ ]?");

Wyszukuje w podanym stringu słowa Male, Female oraz U. Zwraca dopasowania w przypadku gdy string ma postać na przykład "Maleeee" lub "Female." lub "#Male" itp. Chciałby aby w tych przykładowych przypadkach nie zwracało dopasowania.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2

regex key("^Male[^\\s]*|Female[^\\s]*|U[^\\s]*$");

  • Źle zrozumiałem intencje
MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
2
Kopiuj
regex key("\\b(Male|Female|U)\\w?\\b");

Radziłbym dawać bardziej jednoznaczne i różnorodne przykłady, gdy prosisz od pomoc w wyrażeniu regularnym. Np:
Ma dopasować: Male, Female, U ....
Ale nie dopasowywać: Maleee, Female., #Male ...

Twoje przykłady nie wyjaśniają po co ci [^ ]?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Czy ten napis który badasz będzie zawierał kilka Male i/lub Female i/lub U?
Jeżeli tylko jedno z nich to regex key("^(Male|Female|U)$");
Natomiast jeżeli kilka to wystarczy regex key("\\b(Male|Female|U)\\b"); z tym że odrzuci to Malee ale dopasuje
#Male, Male,

Polecam https://regexr.com/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.