2016-06-16 214 views
1

我必須從字符串中找到子字符串,我想知道最簡單的方法是什麼。在這裏沒有尋找編碼解決方案,而是想法,即我使用什麼算法,因爲我正嘗試使用名爲Scheme的編程語言來工作。查找字符串中的字符串

所以我們可以說,我有以下輸入:

模式=這...狐狸是一個很好的...軍團的房子...鎮 字符串=這敏捷的棕色狐狸是個不錯的狐狸在在我們偉大的城市軍團的房子房子

輸出應爲(名單列表):

((快速褐色)(在家裏狐)(在我們偉大的))

謝謝提前。

+0

[通配符字符串匹配]可能的重複(http://stackoverflow.com/questions/2093426/wildcard-string-matching) –

回答

1

這種東西最適合正則表達式。球拍例如:

(regexp-match #rx"This (.*) fox is a good (.*) house of legion (.*) town" 
       "This quick brown fox is a good fox in the house of house of legion in our great town") 
=> ("This quick brown fox is a good fox in the house of house of legion in our great town" 
    "quick brown" 
    "fox in the house of" 
    "in our great") 

regexp-match過程返回捕獲組的列表(捕獲組0是整個輸入字符串),或#f如果匹配失敗。

+0

謝謝,非常感謝。如果我必須自己實現(。*)功能,我該如何解決它?任何指針或鏈接表示讚賞。提前致謝。 – user151193

+0

你想自己做多少? SRFI-13有'string-contains',它返回一個子串的索引。如果你也不願意使用它,你總是可以建立你自己的字符串索引程序。這應該比實現正則表達式更容易。 –