clojure.string/replace

clojure.string/replace

clojure.string/replace is more powerful than I thought. The form of this function:

(replace s match replacement)

Where match/replacement can be:

string / string

(clojure.string/replace "The color is red" "red" "blue")
;=> "The color is blue"

char / char

(clojure.string/replace "The color is red" \c \k)
;=> "The kolor is red"

pattern / string

(clojure.string/replace "The color is red" #"red" "blue")
;=> "The color is blue"

;; $1, $2, etc. in the string are matched with regex pattern
(clojure.string/replace "Almost Pig Latin" #"\b(\w)(\w+)\b" "$2$1ay")
;=> "lmostAay igPay atinLay"

pattern / function

This is where the fun begins.

(clojure.string/replace "The color is red." #"[aeiou]"  #(str %1 %1))
;=> "Thee cooloor iis reed."

;; replaces all a's with 1 and all b's with 2 (map's also function)
(clojure.string/replace "a b a" #"a|b" {"a" "1" "b" "2"})
;=> "1 2 1"

;; to title case
(clojure.string/replace "hello world" #"\b." #(.toUpperCase %1))
;=> "Hello World"

With that power, it's quite trivial to implement a nodejs/clj/cljs library for converting Tiếng Việt to Tiếq Việt :)

huu2uan 28-11-2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Quan

10 bài viết.
2 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
1 0
Clojure supports flexible concurrency models for real world complexity: (Link): builtin support. (Link): similar to Golang concurrency model, w...
Quan viết 12 tháng trước
1 0
White
1 0
clojure (defn updatevalues m f & args] (reduce (fn r k v]] (assoc r k (apply f v args))) {} m)) (updatevalues {:a 1 :b 2 :c 3} inc) ;;= {:c 4,...
Quan viết 12 tháng trước
1 0
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
0 0
Chú ý khi dùng downcase downcase sẽ trả về nil nếu như xâu ký tự không có thay đổi. Ví dụ: ruby "FiShiNg".downcase return: fishing "fishing".down...
Toan Nguyen viết 2 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
10 bài viết.
2 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!