Ich habe Strings mit Beschreibungen des Geschlechts, die ich aussortieren muss. wenn ich die folgenden Zum Beispiel habe,regex in R zu unterscheiden männlich/weiblich in Strings
string1 = "FEMALE AND FEMALE"
string2 = "FEMALE AND MALE"
Ich brauche string1
zu ändern „mehrere Weibchen“ zu sagen, und string2
zu sagen: „männlich und weiblich“.
Mit gsub
, habe ich Probleme beim Schreiben einer Ersetzung, die string2
als von string1
unterscheidet, weil MALE in FEMALE verschachtelt ist. Mit „YEP“ als Bestätigung Zeichenfolge zuerst, ich versucht habe folgendes ohne Glück,
gsub(".*FEMALE.*MALE.*", "YEP", string1)
gsub(".*FEMALE.*[^M]ALE.*", "YEP", string1)
gsub(".*FEMALE.*[^\b]MALE.*", "YEP", string1)
gsub(".*FEMALE.*(^\bMALE).*", "YEP", string1)
gsub(".*FEMALE.*MALE.*", "YEP", string2)
gsub(".*FEMALE.*[^M]ALE.*", "YEP", string2)
gsub(".*FEMALE.*[^\b]MALE.*", "YEP", string2)
gsub(".*FEMALE.*(^\bMALE).*", "YEP", string2)
ich für Folge von Wildcard berücksichtigen müssen, weil nicht alle Strings als „Weibliche und Frau“ oder „Weibliche zeigen und MALE ", manchmal werden sie als" 1 FEMALE 12 MALES "oder" B WEIBLICH MIT 2X W WEIBLICH "usw. angezeigt.
Irgendwelche Ideen, wie man mit verschachtelten Strings mit Regex umgehen kann?
Nicht genau, was Sie suchen in Bezug auf die zusätzlichen Zeichenfolgen, die Sie am unteren Rand Ihres Beitrags hinzugefügt haben, aber Sie können wahrscheinlich etwas wie '(?: ((?! 1 \ D) \ d +) (?: \ s * [az] \ b \ s *) * \ s +)? (\ b (?: FE)? MALES? \ b) 'um alle gesuchten Daten zu erhalten. – ctwheels