将部分搜索模式放回正则表达式中

时间:2016-09-15 23:57:39

标签: regex scheme racket

我想替换?与" An"如果后续单词以元音开头

(define (f str)
  (println (regexp-replace* #rx"\\? [aeiou]"  str "An ")))

(f "? apple.")

它有效,但它带走了一个'一个' ' apple'。输出是:

"An pple."

使用'&'用字符串替换整个搜索模式:

(println (regexp-replace* #rx"\\? [aeiou]"  str "An &"))

输出:

"An ? apple."

我怎样才能放回' a'或者在单词的开头发现了什么元音?

1 个答案:

答案 0 :(得分:1)

实际上,正则表达式就是这个

查找:\? (?=[aeiou])
替换:An

或者如果您可以替换回捕获组

查找:\? ([aeiou])
替换:An $1