从字符串中获取单词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从字符串中获取单词相关的知识,希望对你有一定的参考价值。

我如何从这样的字符串中得到单词示例:

str = "http://test-example:123/wd/hub"

我写了类似的东西

print(str[10:str.rfind(':')])

但它不能正常工作,如果字符串会像

"http://tests-example:123/wd/hub" 
答案

您可以使用此正则表达式来捕获-之前的值,然后使用:来跟随lookarounds

(?<=-).+(?=:)

Regex Demo

Python代码,

import re

str = "http://test-example:123/wd/hub"

print(re.search(r'(?<=-).+(?=:)', str).group())

输出,

example

非正则表达式获得相同的方法是使用这两个分裂,

str = "http://test-example:123/wd/hub"

print(str.split(':')[1].split('-')[1])

打印,

example
另一答案

您可以使用以下非正则表达式,因为您知道示例是一个7个字母的单词:

s.split('-')[1][:7]

对于任何单词,这将改为:

s.split('-')[1].split(':')[0]
另一答案

使用re

import re

text = "http://test-example:123/wd/hub"

m = re.search('(?<=-).+(?=:)', text)
if m:
    print(m.group())

另一答案

很多种方法

使用拆分:

example_str = str.split('-')[-1].split(':')[0]

这很脆弱,如果字符串中有更多的连字符或冒号,可能会破坏。

使用正则表达式:

import re
pattern = re.compile(r'-(.*):')
example_str = pattern.search(str).group(1)

这仍然需要特定的格式,但更容易适应(如果你知道如何编写正则表达式)。

另一答案

我不确定你为什么要从字符串中获取特定的单词。我猜你想看看这个单词是否在给定字符串中可用。

如果是这种情况,可以使用下面的代码。

import re
str1 = "http://tests-example:123/wd/hub"
matched = re.findall('example',str1)
另一答案

-上拆分,然后在:上拆分

s = "http://test-example:123/wd/hub"
print(s.split('-')[1].split(':')[0])
#example
另一答案

Python字符串具有内置函数find

a="http://test-example:123/wd/hub"
b="http://test-exaaaample:123/wd/hub"
print(a.find('example'))
print(b.find('example'))

将返回:

12
-1

它是找到的子字符串的索引。如果它等于-1,则在字符串中找不到子字符串。您还可以使用关键字:

'example' in 'http://test-example:123/wd/hub'

True

以上是关于从字符串中获取单词的主要内容,如果未能解决你的问题,请参考以下文章

从搜索文档中查找最小片段的算法?

机器学习—朴素贝叶斯

如何从网站/词典中获取单个单词?

如何从该片段中的 onItemSelectedListener 中获取微调器单击的项目?

这是从片段中获取字符串资源的正确方法吗?

21个常用代码片段