Python-捕获带有或不带有特定字符的字符串

时间:2019-01-24 22:33:31

标签: python python-3.x

我正在尝试捕获特定单词之后的句子。每个句子在我的代码中都是不同的,这些句子不必一定要用这个特定的单词来分隔。如果没有出现这个词,我只需要空白字符串或列表。

示例1:工作

my_string="Python is a amazing programming language"
print(my_string.split("amazing",1)[1])

 programming language

示例2:

my_string="Java is also a programming language."
print(my_string.split("amazing",1)[1]) # amazing word doesn't appear in the sentence. 
Error: IndexError: list index out of range

需要的输出:空字符串或列表..etc。

我尝试了类似的方法,但是仍然失败。

my_string.split("amazing",1)[1] if my_string.split("amazing",1)[1] == None else my_string.split("amazing",1)[1]

3 个答案:

答案 0 :(得分:0)

您在这里有一些选择。您可以拆分并检查结果:

tmp = my_string.split("amazing", 1)
result = tmp[1] if len(tmp) > 1 else ''

或者您可以预先检查收容措施:

result = my_string.split("amazing", 1)[1] if 'amazing' in my_string else ''

如果大多数句子都具有匹配项,则第一种选择更为有效;如果大多数句子没有匹配项,则第二种选择更为有效。

另一个类似于第一个的选项是

result = my_string.split("amazing", 1)[-1]
if result == my_string:
    result = ''

在所有情况下,请考虑做等同于

的事情
result = result.lstrip()

答案 1 :(得分:0)

使用.split()参数时,可以使用整数或切片指定要使用的列表部分。如果要检查字符串中的特定单词,可以执行以下操作:

my_str = "Python is cool"
my_str_list = my_str.split()
if 'cool' in my_str_list:
    print(my_str)`

output:
"Python is cool"

否则,您可以在字符串列表中运行for循环,以检查它是否在多个字符串中找到该单词。

答案 2 :(得分:-1)

而不是调用索引1,而是调用索引-1。这将调用列表中的最后一项。

library(shiny); library(shinyjs); library(shinyWidgets)
jscode <- "shinyjs.play = function() {$('.slider-animate-button').trigger('click');}"
ui <- fluidPage(useShinyjs(), extendShinyjs(text = jscode),
  tags$head(tags$style(HTML('.irs-from, .irs-to, .irs-min, .irs-max, .irs-grid-text, .irs-grid-pol, .irs-slider {visibility:hidden !important;}'))),
  h3("countdown"),
  sliderInput("countdown", label = "", width = '300px',min = 0, max = 10,value = 0, step = 0.1, post="secs",
              animate = animationOptions(interval = 50, playButton = "", pauseButton = "")),
  actionButton("start", "start"))
server <- function(input, output,session) {
  disable("slider")
  observeEvent(input$start, priority=10, {js$play()})
}
shinyApp(ui, server)

返回“编程语言”。