在Python中获取两个字符之间的字符串

15 投票
4 回答
63920 浏览
提问于 2025-04-17 16:53

我需要从一个字符串中提取出特定的词,并把它们转换成新的格式。例如,我调用这个函数时输入:

text2function('$sin (x)$ is an function of x')

然后我需要把它们放到一个叫做StringFunction的地方:

StringFunction(function, independent_variables=[vari])

在这里,我只需要提取出' sin (x)'作为函数,以及'x'作为变量。最后的结果应该是这样的:

StringFunction('sin (x)', independent_variables=['x']

问题是,我似乎无法得到函数和变量。我尝试过:

start = string.index(start_marker) + len(start_marker)
end = string.index(end_marker, start)
return string[start:end]

还有

r = re.compile('$()$')
m = r.search(string)
if m:
     lyrics = m.group(1)

以及

send = re.findall('$([^"]*)$',string)

但所有的尝试似乎都没有得到结果。我是不是做错了什么?非常感谢大家的帮助。

4 个回答

8

如果你想在两个相同的字符之间切割一个字符串(比如说,!234567890!),你可以使用下面的代码:

   line_word = line.split('!')
   print (line_word[1])
9

$在正则表达式中是一个特殊字符,它表示字符串的结尾。你需要对它进行转义:

>>> re.findall(r'\$(.*?)\$', '$sin (x)$ is an function of x')
['sin (x)']
29

有点小技巧哦!

>>> char1 = '('
>>> char2 = ')'
>>> mystr = "mystring(123234sample)"
>>> print mystr[mystr.find(char1)+1 : mystr.find(char2)]
123234sample

撰写回答