Я не был уверен, как назвать этот заголовок, не стесняйтесь редактировать его, если вы думаете, что есть лучшее имя.
Я пытаюсь найти случаи, которые соответствуют определенным критериям поиска.
В частности, я пытаюсь найти предложения, содержащие в себе слово «где». После того, как я это определил, я пытаюсь найти случаи, когда команда «SQL» также находится в этом же теге.
Допустим, у меня есть кадр данных, который выглядит следующим образом:
search_criteria = ['где']
df4
Q R
0 file.sql <sentence>dave likes stuff</sentence><properties>version = "2", description = "example" type="SqlCommand">select id, name, from table where criteria = '5'</property><sentence>dave hates stuff>
0 file.sql <sentence>dave likes stuff</sentence><properties>version = "2", description = "example">select id, name, from table where criteria = '5'</properties><sentence>dave hates stuff>
Я пытаюсь вернуть это:
Q R
0 file.sql <properties>version = "2", description = "example">select id, name, from table</properties>
Эта запись должна быть возвращена, потому что она содержит "where" и "sqlcommand".
Вот мой текущий процесс:
regex_stuff = df_all_xml_mfiles_tgther[cc:cc+1].R.str.findall('(<[^<]*?' + 'where' + '[^>]*?>)', re.IGNORECASE)
sql_command_regex_stuff = df_all_xml_mfiles_tgther[cc:cc+1].R.str.findall('(<property[^<]*?' + 'sqlcommand' + '[^>]*?<\/property>)', re.IGNORECASE)
if not regex_stuff.empty: #if one of the search criteria is found
if not sql_command_regex_stuff.empty: #check to see if the phrase "sqlcommand" is found anywhere as well
(insert rest of code)
Это ничего не возвращает.
Что я делаю не так?
Редактировать # 1:
Кажется, мне нужно что-то сделать в конце, чтобы регулярное выражение выглядело примерно так:
<property[^<]*?SqlCommand[^(<\/property>)]*
Я чувствую, что это правильное направление, не работает, но я чувствую, что это правильный шаг.