2014-01-21 5 views
3

Мне было интересно, как можно сравнить строки для частичного соответствия. Например,Как сравнить частичные совпадения строк в ракетке?

Чтобы узнать, найдена ли фраза «пример» в предложении, скажем, «это пример»?

+0

Любой ответ, который вы могли бы принять? – uselpa

ответ

3

Использование string-contains из SRFI 13:

> (require srfi/13) 
> (string-contains "this is an example" "example") 
11 
> (string-contains "this is an example" "hexample") 
#f 
3

В Ракетке общий механизм для этого является regular expressions:

(regexp-match "example" "this is an example") 
=> '("example") 

(regexp-match-positions "example" "this is an example") 
=> '((11 . 18)) 

Регулярных выражений являются немного сложным, но очень мощным способом обработки строк. Вы можете указать, должна ли строка поиска быть отдельным словом, искать повторяющиеся шаблоны или классы символов. См. Превосходный документ Racket для этого.

Смежные вопросы