首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手把手教你查找字符串包含多个元素

前言 前几天在才哥交流群里,有个叫【华先生】粉丝在Python交流群里问了一道关于Python字符串基础问题,初步一看觉得很简单,实际上也确实不难,题目如下图所示。...问题:如何查找字符串包含多个元素。比如某个字符串包含“宿舍”或“公寓”或“酒店”任何一个,则返回1。...这里我综合大家给答案,整理了三个实现方案,下面一起来看看吧! 三、解决方法 方法一 这里给出【才哥】提供代码,使用了any()函数,恰到好处,下面直接来看代码吧!...本文基于粉丝针对Python字符串提问,给出了一个利用Python基础+正则表达式处理解决方案,完全满足了粉丝要求。...最后感谢粉丝【华先生】提问,感谢【才哥】、【小小明】、【dcpeng】、【海心广告1】大佬等提供代码,感谢【是小董呀、】、【Barry】、【冫马讠成】等人参与探讨学习。

1.5K30

从一道算法面试题看我国信息科技原创性不足:查找包含所有元素最短数组

前不久我遇到这样一道算法面试题:在一个包含重复元素数组,找到一个最短数组,要求该数组包含了整个数组所有元素,例如给定数组:7, 3, 7, 3, 1, 3, 4, 1,包含所有元素最短数组为...a[t…h],假设a[t-1]不存在a[t…h],那么a[t..h]就不能包含数组所有元素,由此产生矛盾,同理可推论a[h+1]也一定存在数组a[t…h]。...,看看是否能在一个包含所有元素数组,确定最短数组。...算法第一步是查找给定数组所有元素,做到这个不难,我们先遍历数组,然后将当前访问到元素加入哈希表,如果元素在表已经存在,说明该元素是重复元素,可以直接忽略,如此遍历一遍后,我们就能得到该数组所有元素...此时我们得到数组a[start…end]可能是包含所有元素最短数组,也有可能不是。我们需要继续探寻,以确认后面是否会存在包含所有元素但长度更短数组。

65220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Python】元组 tuple ② ( 元组常用操作 | 使用下标索引取出元组元素 | 查找某个元素对应下标索引 | 统计某个元素个数 | 统计所有元素个数 )

    一、元组常用操作 1、使用下标索引取出元组元素 - [下标索引] 使用下标索引取出 元组 tuple 元素 方式 , 与 列表 List 相同 , 也是将 下标索引 写到括号 访问指定位置元素...# 输出: Jerry # 定义元组变量 t1 = (("Tom", 18), ("Jerry", 16)) # 打印 嵌套元组 元素 print(t1[1][1]) # 输出: 16 执行结果...: Jerry 16 2、查找某个元素对应下标索引 - index 函数 调用 tuple#index 函数 , 可以查找 元组 中指定元素 对应下标索引 ; 函数原型如下 : def index...pass 代码示例 : """ 元组 tuple 常用操作 代码示例 """ # 定义元组字面量 t0 = ("Tom", "Jerry", 18, False, 3.1415926) # 查找元素对应下标索引...元组 所有元素 个数 ; 函数原型如下 : def len(*args, **kwargs): # real signature unknown """ Return the number

    96920

    【Groovy】集合遍历 ( 使用集合 findAll 方法查找集合符合匹配条件所有元素 | 代码示例 )

    文章目录 一、使用集合 findAll 方法查找集合符合匹配条件所有元素 1、闭包中使用 == 作为 findAll 方法查找匹配条件 2、闭包中使用 is 作为 findAll 方法查找匹配条件...3、闭包中使用 true 作为 findAll 方法查找匹配条件 二、完整代码示例 一、使用集合 findAll 方法查找集合符合匹配条件所有元素 ---- 在上一篇博客 【Groovy】集合遍历...方法 , 获取集合第一个符合 闭包匹配条件元素 ; 使用集合 findAll 方法 , 可以 获取 集合 所有 符合 闭包匹配条件元素 , 这些元素将使用一个新集合盛放 , findAll...方法返回值就是返回该符合 匹配条件 元素 ; 集合 findAll 方法原型 : /** * 查找与关闭条件匹配所有值。...在集合 findAll 方法 , 闭包中使用 true 作为查找匹配条件 , 查找集合不为空元素 , 此处返回第一个不为空元素 ; 代码示例 : // III.

    2.4K30

    Python3 xml.etree.ElementTree支持XPath语法详解

    xml.etree.ElementTree可以通过支持有限XPath表达式来定位元素。 语法 ElementTree支持语法如下: 语法 说明 tag 查找所有具有指定名称tag元素。...如:*/rank表示所有名为rank孙子元素。 . 选择当前元素。在xpath表达式开头使用,表示相对路径。 // 选择当前元素所有级别的所有元素。xpath不能以“//”开头。 .....[@attrib=’value’] 选择指定属性attrib具有指定值value元素,该值不能包含引号。 [tag] 选择所有具有名为tag元素元素。...[tag=’text’] 选择元素(或其元素)名为tag,完整文本内容为指定值text元素。.../*[@name='Malaysia']").get("direction")) #查找root下所有包含名为year元素元素 for country in root.findall("*[year

    2.9K20

    Dom4j解析XML(详解)

    >结尾,而且必须包含两个属性 一个是version,表示XML版本 一个是encoding,表示XML编码 --> <!...-- 属性是标签组成部分,属性只能定义在开始标签,不能定义在结束标签 属性定义格式:属性名=属性值,属性值需要使用""包含起来 开始标签可以定义多个属性,但是多个属性属性名不能相同 属性名必须准守命名规则和命名规范...例如 /元素/元素/元素……; 相对路径表达方式: 相对于当前节点元素继续查找节点,不以/开头,…/表示上一个元素,....注意: //表示无论中间有多少层,直接获取所有元素所有满足条件元素 /表示只找一层 谓语(条件筛选形式) 例如 : //元素[@attr1=value] 具体对应每一种方式Java测试程序如下所示...------>使用全局搜索方式"); //获取所有的id元素文本 List idNodeList = document.selectNodes

    3K20

    Xpath、Jsoup、Xsoup(我Java爬虫之二)

    从Xpath说起 什么是Xpath XPath是W3C一个标准。它最主要目的是为了在XML1.0或XML1.1文档节点树定位节点所设计。...//book 选取所有 book 元素,而不管它们在文档位置。...实例 路径表达式 结果 /bookstore/* 选取 bookstore 元素所有元素。 //* 选取文档所有元素。 //title[@*] 选取所有带有属性 title 元素。...:not(selector): 查找与选择器不匹配元素,比如: div:not(.logo) 表示不包含 class=logo 元素所有 div 列表 :contains(text): 查找包含给定文本元素...,搜索不区分大不写,比如: p:contains(jsoup) :containsOwn(text): 查找直接包含给定文本元素 :matches(regex): 查找哪些元素文本匹配指定正则表达式

    1.6K20

    XData关键字XMLNamespace,DataLocation,DefaultData,Final

    用法要指定XData块所属XML名称空间,请使用如下语法:XData name [ XMLNamespace = "namespaceURL" ] { }其中namespaceURL是XML名称空间...全局变量引用还可以包含一个或多个前导下标。 例如, ^User.Data("Person")。在从属类(父-关系子类)中使用{%%PARENT}代替全局或局部变量名也是有效。...大纲MyData值此元素值是当前存储定义数据存储节点名称。描述指定类编译器数据结构生成器用来放置任何以前未存储属性数据定义名称。...如果属性是可存储,但未在任何数据定义列出,则该属性是“未存储”。...如果将新非瞬时属性添加到持久类定义,并且没有为其显式定义存储位置,则类编译器将在元素指定存储节点中自动查找该属性存储位置。

    28110

    XML(一)XML大揭秘

    二、XML文档规则——如何构建一个良构XML文档 2.1、XML文档必须有根元素 XML必须包含元素,它是所有其他元素元素,比如:   以下实例“root”就是根元素: // 1 <root...叶子:文本标签(没有具体体现)值   XML文档必须包含元素。该元素所有其他元素元素。   XML文档元素形成了一棵文档树。这棵树从根部开始,并扩展到树最底端。   ...所有元素都可以有元素。   父、以及同胞等术语用于描述元素之间关系。父元素拥有元素。相同层级上元素成为同胞(兄弟或姐妹)。   所有元素都可以有文本内容和属性(类似HTML)。   ...开头,以“?>”结尾,xml头部声明就是最常见一种处理指令,告诉解析器采用什么字符编码解析内容。   xml文档可以有多个处理指令。   ...当命名空间被定义在元素开始标签时,所有带有相同前缀元素都会与同一个命名空间相关联。   注:用于标示命名空间url不会被解析器用于查找信息。其惟一作用是赋予命名空间一个惟一名称。

    2.3K90

    记一次jsoup使用

    .body p 查找在"body"元素所有 p元素; parent > child: 查找某个父元素直接元素,比如:可以用div.content > p 查找 p 元素,也可以用body...> * 查找body标签下所有直接元素; siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div; siblingA ~ siblingX...logo) 表示不包含 class="logo" 元素所有 div 列表 :contains(text): 查找包含给定文本元素,搜索不区分大不写,比如:p:contains(jsoup)...:containsOwn(text): 查找直接包含给定文本元素 :matches(regex): 查找哪些元素文本匹配指定正则表达式,比如:div:matches((?...i)login) :matchesOwn(regex): 查找自身包含文本匹配指定正则表达式元素 注意:上述伪选择器索引是从0开始,也就是 提取给定URL链接 Document

    1.5K30

    自动化-Selenium 3-元素定位(Python版)

    XPath是XML Path简称,是一门在XML文档查找信息语言,由于HTML文档本身就是一个标准XML页面,所以XPath在XML文档通过元素和属性进行导航。...而当/出现在XPath路径时,则表示寻找父节点直接节点,当//出现在XPath路径时,表示寻找父节点下任意符合条件节点,不管嵌套了多少层级。...下面是相对路径写法: 查找页面根元素:// 查找页面上所有的input元素://input 查找页面上第一个form元素://form[1] 查找页面上第一个form元素第一个input元素:/.../form[1]/input[1] 查找页面上第一个form元素所有input元素://form[1]//input 查找页面上id为formIDform元素://form[@id='formID...href, 'order')]") 这句话意思是寻找页面href属性值包含有order这个单词所有a元素,由于这个“订餐”按钮href属性里肯定会包含order,所以这种方式是可行,也会经常用到

    7.4K10

    XPath语法_javapath作用

    在学习XPath之前你应该对XML节点,元素,属性,原子值(文本),处理指令,注释,根节点(文档节点),命名空间以及对节点间关系如:父(Parent),(Children),兄弟(Sibling)...child 选取当前节点所有元素。...* 通配符;选择所有元素节点与元素名无关。(不包括文本,注释,指令等节点,如果也要包含这些节点请用node()函数) @ 属性名前缀。 @* 选择所有属性,与名称无关。...常用表达式实例: / Document Root文档根. /* 选择文档根下面的所有元素节点,即根节点(XML文档只有一个根节点) /node() 根元素所有的节点(包括文本节点,注释节点等) /text...text() 第一个message节点所有节点 /messages/message[1]//text() 第一个message节点下递归下降查找所有文本节点(无限深度) /messages/message

    8.8K20

    深入解读Python解析XML几种方式

    对整个XML文档交互(读取,写入,查找需要元素),一般是在ElementTree层面进行。对单个XML元素及其元素,则是在Element层面进行。下面我们举例介绍主要使用方法。...与其他Element对象一样,根元素也具备遍历其直接元素接口: 查找需要元素 从上面的示例,可以明显发现我们能够通过简单递归方法(对每一个元素,递归式访问其所有元素)获取树所有元素。...下面是查找XML文档中所有元素最简单方法: 支持通过XPath查找元素 使用XPath查找感兴趣元素,更加方便。...Element对象中有一些find方法可以接受Xpath路径作为参数,find方法会返回第一个匹配元素,findall以列表形式返回所有匹配元素, iterfind则返回一个所有匹配元素迭代器...我们使用一个自动生成XML文档,下面是该文档开头部分: 上面的代码会将全部元素载入内存,逐一解析。

    2.7K70

    使用%XML.TextReader

    文本阅读器对象包含一个可导航节点树,每个节点都包含有关源文档信息。然后,方法可以导航该文档并查找有关该文档信息。对象属性提供有关文档信息,这些信息取决于在文档的当前位置。...对于这些方法每一个,如果该方法返回$OK,则它通过引用(其第二个参数)返回包含XML文档信息文本阅读器对象。其他参数允许控制实体解析、验证、找到哪些项等。...若要返回到元素(如果适用),请使用MoveToElement()。如果需要,可以使用Rewind()方法返回到文档开头(第一个节点之前)。这是唯一可以在源代码倒退方法。...方法运行后,文本读取器对象将被销毁,所有相关临时存储都将被清除。...这将读取源文件,创建一个文本阅读器对象,并通过引用在变量doc返回该对象。如果ParseFile()成功,则该方法然后调用read()方法来查找文档每个后续节点。

    51820

    XPath知识点梳理

    它最主要目的是为了在XML1.0或XML1.1文档节点树定位节点所设计。 XPath是一种表达式语言,它返回值可能是节点,节点集合,原子值,以及节点和原子值混合等。...ancestor-or-self 选取当前节点所有先辈(父、祖父等)以及当前节点本身。 attribute 选取当前节点所有属性。 child 选取当前节点所有元素。...descendant 选取当前节点所有后代元素、孙等)。 descendant-or-self 选取当前节点所有后代元素、孙等)以及当前节点本身。...* 通配符;选择所有元素节点与元素名无关。(不包括文本,注释,指令等节点,如果也要包含这些节点请用node()函数) @ 属性名前缀。 @* 选择所有属性,与名称无关。...,即根节点(XML文档只有一个根节点) /node() 根元素所有的节点(包括文本节点,注释节点等) /text() 查找文档根节点下所有文本节点 /messages/message messages

    1.1K40

    DOM 和 BOM

    网页中一切内容在内存中都是以树形结构存储,树只有一个根节document,它包含所有网页内容,网页每一项内容都是树上一个节点对象,包括: 元素、文字、属性......按节点间关系查找,节点树包含所有节点,分为元素文本 ①....,这种查找方式会连看不见空字符也算文本节点,会对结果产生一定干扰,解决方法是按仅包含元素节点树结构去查找。...按标签名查找 parent.getElementsByTagName("标签名") 按标签名查找在任意父元素上,不但查找直接元素,还查找所有后代元素,返回多个元素组成集合 ③....按 class 属性查找 parent.getElementsByClassName("class") 按 class 属性查找在任意父元素上调用,该属性不要求完整匹配,只要包含即可,它会返回多个元素组成集合

    2.2K10

    XML 简介及用法详解

    XML树始于根元素,从根元素分支到元素所有元素都可以有元素元素): ........XML文档必须有一个根元素XML文档必须包含一个作为所有其他元素元素元素: ........如果存在,它必须在文档首先出现。所有XML元素必须有一个结束标签在XML,省略结束标签是非法所有元素必须有一个结束标签:This is a paragraph....XML命名规则XML元素必须遵循以下命名规则:元素名称区分大小写元素名称必须以字母或下划线开头元素名称不能以字母xml(或XMLXml等)开头元素名称可以包含字母、数字、连字符、下划线和句点元素名称不能包含空格除了...第二个元素xmlns属性为f:前缀提供了一个合格命名空间。当为元素定义命名空间时,所有具有相同前缀元素都与相同命名空间相关联。

    45400

    彻底学会Selenium元素定位

    绝对路径 从最外层元素到指定元素之间所有经过元素层级路径 ,绝对路径是以/html根节点开始,使用 / 来分割元素层级语法,比如:/html/body/div[2]/div/div[2]/div[1...元素元素book元素) 由于绝对路径对页面结构要求比较严格,因此不建议使用绝对路径。...通过标签文本值进行定位,定位文本值等于XX元素,一般适用于p标签、a标签。...(By.CSS_SELECTOR, "[属性*='包含字母']") # 获取指定属性包含指定字母元素 标签选择器 语法: driver.find_element(By.CSS_SELECTOR,...所有可操作元素,例如输入框、点击按钮等均需要加id字段,并且id字段命名为元素含义英文;若当前页面存在两个或多个一样元素,则第二个开始命名为id=username2,以此类推;多层级元素一般最外层定义即可

    6.3K31
    领券