首页 文章

R中的正则表达式区分男性/女性的字符串

提问于
浏览
0

我有需要理清的性别描述字符串 . 例如,如果我有以下内容,

string1 = "FEMALE AND FEMALE"
string2 = "FEMALE AND MALE"

我需要将 string1 更改为"MULTIPLE FEMALES",将 string2 更改为"BOTH MALE AND FEMALE" .

使用 gsub ,我在编写一个将 string2 识别为与 string1 不同的替换时遇到问题,因为MALE嵌套在FEMALE中 . 首先使用"YEP"作为确认字符串,我试过以下没有运气,

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)

我需要考虑通配符的顺序,因为并非所有字符串都显示为“女性和女性”或“女性和男性”,有时它们显示为“1女性12个男性”或“B女性2X W女性”等 .

有关如何使用正则表达式处理嵌套字符串的任何想法?

1 回答

  • 0

    好的,我发布后就知道了 .

    运行 gsub(".*FEMALE.*\\b(M)ALE.*", "YEP", string1) 会产生 "FEMALE AND FEMALE" ,而 gsub(".*FEMALE.*\\b(M)ALE.*", "YEP", string2) 会产生 "YEP" . 这样可行 .

相关问题