![](/img/trans.png)
[英]Getting a substring from a string (characters in between single quotes) (Python)
[英]getting string between 2 characters in python
我需要从字符串中获取某些单词到新格式。 例如,我用输入调用函数:
text2function('$sin (x)$ is an function of x')
我需要将它们放入StringFunction:
StringFunction(function, independent_variables=[vari])
我需要得到函数的'sin(x)'和vari的'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)
似乎一切似乎都没有给我任何东西。 难道我做错了什么? 所有帮助表示赞赏。 谢谢。
Tweeky方式!
>>> char1 = '('
>>> char2 = ')'
>>> mystr = "mystring(123234sample)"
>>> print mystr[mystr.find(char1)+1 : mystr.find(char2)]
123234sample
$
是正则表达式中的特殊字符(表示字符串的结尾)。 你需要逃脱它:
>>> re.findall(r'\$(.*?)\$', '$sin (x)$ is an function of x')
['sin (x)']
您需要开始搜索超出 start
的第二个字符:
end = string.index(end_marker, start + 1)
因为否则它会再次在同一位置找到相同的字符:
>>> start_marker = end_marker = '$'
>>> string = '$sin (x)$ is an function of x'
>>> start = string.index(start_marker) + len(start_marker)
>>> end = string.index(end_marker, start + 1)
>>> string[start:end]
'sin (x)'
对于正则表达式, $
字符被解释为锚点,而不是文字字符。 转义它以匹配文字$
(并寻找不是 $
而不是"
东西"
:
send = re.findall('\$([^$]*)\$', string)
这使:
>>> import re
>>> re.findall('\$([^$]*)\$', string)
['sin (x)']
正则表达式$()$
否则与括号之间的任何内容都不匹配,即使您确实转义了$
字符。
如果你想在两个相同的字符之间剪切一个字符串(即!234567890!),你可以使用
line_word = line.split('!')
print (line_word[1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.