当前位置: 首页 > 面试题库 >

用Python re.match提取字符串

史鸿运
2023-03-14
问题内容
import re
str="x8f8dL:s://www.qqq.zzz/iziv8ds8f8.dafidsao.dsfsi"

str2=re.match("[a-zA-Z]*//([a-zA-Z]*)",str)
print str2.group()

current result=> error
expected => wwwqqqzzz

我要提取字符串wwwqqqzzz。我该怎么做?

也许有很多点,例如:

"whatever..s#$@.d.:af//wwww.xxx.yn.zsdfsd.asfds.f.ds.fsd.whatever/123.dfiid"

在这种情况下,我基本上想要由//和界定的东西/。我该如何实现?

另一个问题:

import re
str="xxx.yyy.xxx:80"

m = re.search(r"([^:]*)", str)
str2=m.group(0)
print str2
str2=m.group(1)
print str2

似乎m.group(0)m.group(1)相同。


问题答案:

match尝试匹配 整个 字符串。使用search代替。然后,以下模式将满足您的要求:

m = re.search(r"//([^/]*)", str)
print m.group(1)

基本上,我们正在寻找/,然后消耗尽可能多的非斜杠字符。那些非斜杠字符将被捕获在组号1中。

实际上,有一种更高级的技术可以执行此操作,但不需要捕获(通常很耗时)。它使用所谓的lookbehind:

m = re.search(r"(?<=//)[^/]*", str)
print m.group()

在实际比赛中不包括环顾四周,因此是理想的结果。

此(或任何其他合理的正则表达式解决方案)不会.立即删除。但这可以在第二步中轻松完成:

m = re.search(r"(?<=//)[^/]*", str)
host = m.group()
cleanedHost = host.replace(".", "")

那甚至不需要正则表达式。

当然,如果您想删除除字母和数字之外的所有内容(例如www.regular- expressions.info变成wwwregularexpressionsinfo),那么最好使用regex版本的replace

cleanedHost = re.sub(r"[^a-zA-Z0-9]+", "", host)


 类似资料:
  • 所谓字符串,指的就是字符的序列或者“串”。我们要在字符串上执行的第一个操作是提取所有字符中的一个。C++使用方括号([和])执行该操作: apstring fruit = "banana"; char letter = fruit[1]; cout << letter << endl; 表达式fruit[1]表明我们要从字符串变量fruit中取得编号为1的字符,并将结果保存在字符变量letter

  • 在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex) 形式 此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。例如: 2. substring(int beginIndex,int e

  • 我有以下字符串 从上面,我需要提取下面的文字 第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以 它们的后面总是有一个空格,有时是一个空格,有

  • 我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,子字符串之间用逗号(',')分隔。我需要使用任何MySQL函数提取这些子字符串。 例如: 我想选择颜色字段并提取红色、黄色和绿色的子字符串,用逗号分隔。

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案: