簡體   English   中英

使用Python查找字符串中多次出現的子串和字符的通用代碼或Python函數?

[英]Generic code or Python function for finding multiple occurrences of substrings and character in string using Python?

我是Python的初學者。 我試圖解決以下問題。 我在.txt文件中有一個SQL查詢列表(例如):

SELECT first_name, last_name From table1 WHERE ID = 1234 AND date_of_birth = 19/01/1996;
SELECT last_name From table2 WHERE ID = 4563 AND date_of_birth =    10/04/1997 AND lisence_no = 2874;
SELECT first_name From table1 WHERE ID = 3762 AND age = 23 AND last_name = 'Maria';
SELECT first_name From table1 WHERE ID = 2894;

等等......現在我想在查詢中將ID,last_name,lisence_no等特定值替換為“?”

所以我想得到這樣的輸出:

SELECT first_name, last_name From table1 WHERE ID = '?' AND date_of_birth = '?';
SELECT last_name From table2 WHERE ID = '?' AND date_of_birth = '?' AND lisence_no = '?';
SELECT first_name From table1 WHERE ID = '?' AND age = '?' AND last_name = '?';
SELECT first_name From table1 WHERE ID = '?';

我可以在python中使用什么函數來獲取大量sql查詢的這種類型的輸出?

我知道像str.findstr.index這樣的函數只能搜索一次,並且會涉及一些解決方法。 我期待一些專家python用戶知道在我的情況下有用的函數或函數組合。

非常感謝!

我為此寫了一個小腳本。 希望它能與你合作。

def replaceCustom(inputField, str):
    index = 0
    index2 = 1
    while(index<index2):
        index = str.find(inputField,index)
        index2 = str.find("AND",index2)

        str = str.replace((str[index:index2]), inputField+ " = '?' ")
        index +=1
        index2 +=1
        print (index, index2)

    return str     

str = """SELECT first_name, last_name From table1 WHERE ID = 1234 AND date_of_birth = 19/01/1996; 
SELECT last_name From table2 WHERE ID = 4563 AND date_of_birth =    10/04/1997 AND lisence_no = 2874;  
SELECT first_name From table1 WHERE ID = 3762 AND age = 23 AND last_name = 'Maria'; 
SELECT first_name From table1 WHERE ID = 2894;"""

str = replaceCustom("ID", str)
str = replaceCustom("date_of_birth", str)
str = replaceCustom("lisence_no", str)

我測試了它似乎工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM