Может как то так?
list = {{a, b, c, {x, y}, d, x}, {a, b, c, d, x}, {{a, b, c, d}, x}}
Select[list, MemberQ[#, x, {2}] &]
Выход:
{{a, b, c, {x, y}, d, x}}
Обновление
Это также будет работать
Cases[list, _?(MemberQ[#, x, {2}] &)]
Обновление вопроса @rose (см. Комментарии)
Учитывая следующие данные, как я могу выбрать записи, содержащие слова «ФИЗИЧЕСКИЙ ЭКСПЕРТИЗЫ» в строке, например, внутри строки «ФИЗИЧЕСКИЙ ЭКСПЕРТИЗЫ P-023, ТЕХНИК, NOS», на втором уровне (т.е. только в пределах подсписок)? (Я немного изменил пример @ rose)
rdata2={{1111113,21119,SQLDateTime[{2011,1,11,11,11,0.`}],31111,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","No Examination, NOS"},"Text bla bla bla physical examination bla bla"},{1111114,21119,SQLDateTime[{2011,2,11,11,11,0.`}],31112,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","P-023 PHYSICAL EXAMINATION, TECHNICIAN, NOS"},"Text bla bla bla"},
{1111115,21000,SQLDateTime[{2011,1,11,11,11,0.`}],31111,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","P-023 physical examination, TECHNICIAN, NOS"},"Text bla bla bla physical examination bla bla"}};
(1) В одну сторону (возврат только записи 1111114)
Select[rdata2,
MemberQ[Characters@#,
Flatten@{___, Characters["PHYSICAL EXAMINATION"], ___}, {2}] &]
(2) Игнорировать регистр (но все еще выбирать в подсписке)
Select[rdata2,MemberQ[ToLowerCase@Characters@#,
Flatten@{___,ToLowerCase@
Characters["PHYSICAL EXAMINATION"],___},{2}]&]
(выбирается для записей 1111114 и 1111115)
(3) Последний пример (выберите для записей с «Без проверки» в подсписке, но там, где может быть ноль или более символов между «Нет» и «Проверка», и где регистр снова игнорируется) )
Select[rdata2,
MemberQ[ToLowerCase@Characters@#,
Flatten@Riffle[
ToLowerCase@Characters@{"No", "Examination"}, ___, {1, -1,
2}], {2}] &]
(выбирается для записи 1111113)
Нет никаких сомнений, что есть более эффективные способы продолжения. Я надеюсь, что правильно истолковал вопрос.