查找字符串中的单词并将其移动到句子的末尾。 Python3.x

输入:'等等move_me2,不,'

输出:“等等,不,move_me2”

当前代码:

raw = 'blah move_me2,nah '
word = 'move_me'
start_idx = raw.index('move_me')
end_idx = ed_idx + len(word) + 1
raw = raw + ' ' + raw[start_idx:end_idx]
raw = raw.replace(raw[start_idx:end_idx],'',1)
print(raw)

需要以下方面的帮助:使用正则表达式是否可以提高效率?

注意:“ move_me”一词可能在结尾处几乎没有多余的章程,在这种情况下为“ 2”

sdn0214 回答:查找字符串中的单词并将其移动到句子的末尾。 Python3.x

此代码有效,我不知道它是否符合您的意愿,因为它只使用普通的python字符串操作符而不是regex。您可以找到并替换一个字符串,然后附加它。目前,还没有检查,该字符串实际上是否为原始字符串。也许您应该首先证明这一点。

raw = 'blah move_me2,nah '
word = 'move_me'
a = raw.replace(word,"") + str(word)
print(a)

输出:

blah 2,nah move_me
,

您可以使用“ re”模块获取所需的字符串。

import re

raw = 'blah move_me2,nah '
word = 'move_me'
find_str = re.search(r'(%s[^\s]+)' % word,raw)
if find_str:
    new_str = raw[find_str.span()[0]:find_str.span()[1]:]
    renew_str = raw.replace(new_str,'')
    renew_str += new_str
    print(renew_str)

输出:

blah,nah move_me2
,

如果我了解您想要的内容,则以下代码可能会对您有所帮助:

raw_input = 'blah move_me2,nah ' 
word = 'move_me'
pos_start = raw_input.find(word)
raw_output = raw_input[:pos_start] + raw_input[pos_start+len(word):] + word
print(raw_output)

find函数是查找字符串中某物的位置的好方法(它返回单词/句子的起始位置)。

如果您愿意,我对此做了一个简短的版本:

raw_input,word = 'blah move_me2,nah ','move_me'
raw_output = raw_input[:raw_input.find(word)] + raw_input[raw_input.find(word)+len(word):] + word
print(raw_output)
,

让span函数在搜索的输出上起作用以对原始字符串进行切片,提取单词并将其粘贴在字符串的末尾。

import re
txt="blah move_me2,nah "
txt[:re.search("move_me2",txt).span()[0]] + txt[re.search("move_me2",txt).span()[1]:]+" move_me2"
本文链接:https://www.f2er.com/3138259.html

大家都在问