从字符串中获取单词
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从字符串中获取单词相关的知识,希望对你有一定的参考价值。
我如何从这样的字符串中得到单词示例:
str = "http://test-example:123/wd/hub"
我写了类似的东西
print(str[10:str.rfind(':')])
但它不能正常工作,如果字符串会像
"http://tests-example:123/wd/hub"
答案
您可以使用此正则表达式来捕获-
之前的值,然后使用:
来跟随lookarounds
(?<=-).+(?=:)
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
以上是关于从字符串中获取单词的主要内容,如果未能解决你的问题,请参考以下文章