从Python F字符串中提取参数

时间:2018-11-15 18:15:21

标签: python string python-3.x f-string

我有一个python f字符串,如下所示:

def send_string():
    ticket_id=123
    message = f'{ticket_id} Jira created successfully'
    return message

def extract_ticket_from_message(message):
    #pseudo code
    # Is it possible to extract the ticket id without parsing the 
    # whole string and using regex

是否有一种方便的方法可以从f字符串中提取 ticket_id 值,而不必在Python 3.6中使用正则表达式来分析整个字符串?

1 个答案:

答案 0 :(得分:1)

如果

def extract_ticket_from_message(message):
    return message.split()[0]

然后–不使用正则表达式–

ticket_id

换句话说,第一个单词。如果ticket_id也可以是任何字符串(因此可能包含空格),您仍然可以使用此字符串,但请截断最后3个单词。 (毕竟,您知道会发生什么。)如果"1234"是一个以字符串表示形式结果的更复杂的对象,则没有实际方法可以将其解析回原始类/对象/ Python原语以外的任何对象。

值得注意的是:如果没有歧义,您将无法获得原始的 type 。如果原始文件是字符串,但的值为(int from, int to)[] inputRanges = { (1,2), (3,4) }; var result = from range in inputRanges select Enumerable.Range(range.from, range.to - range.from + 1); return result.SelectMany(x => x); ,则无法确定是否传递了字符串或数字。