我通读Racket's string library但找不到与Java / JavaScript的indexOf
方法等效的函数。也就是说,是否有一个函数返回较大字符串中子字符串的第一个字符的索引;优选地采用可选的启动参数。类似的东西:
(string-index "foobar" "bar")
;;; returns 3
我很满意列表'member
功能。
答案 0 :(得分:3)
SRFI 13中有很多字符串操作。其中string-contains
完全符合您的要求。
#lang racket
(require srfi/13) ; the string SRFI
(string-contains "foobar" "bar") ; evaluates to 3
在此处查看更多内容:SRFI 13
FWIW这是string-index
(define (string-index hay needle)
(define n (string-length needle))
(define h (string-length hay))
(and (<= n h) ; if the needle is longer than hay, then the needle can not be found
(for/or ([i (- h n -1)]
#:when (string=? (substring hay i (+ i n)) needle))
i)))
(string-index "foobar" "bar")
答案 1 :(得分:0)
在Racket中没有这样的原始功能,但你可以使用regular expressions,例如:
(regexp-match-positions "example" "This is an example.")
=> '((11 . 18))