检查球拍中的字符串是否为空或只有空白字符
Check if a string is empty or only whitespace characters in racket
如何检查字符串是否为空或 racket 中是否全是空白字符? the example on their site (string$?
) 无效
将 regexp-match-exact? 与此正则表达式一起使用:#px"\s*"
,它匹配空白字符零次或多次:
> (regexp-match-exact? #px"\s*" "a")
#f
> (regexp-match-exact? #px"\s*" "")
#t
> (regexp-match-exact? #px"\s*" " ")
#t
> (regexp-match-exact? #px"\s*" "
")
#t
non-empty-string?
对于空字符串和带有空白字符的字符串有不同的结果:
> (non-empty-string? " ")
#t
> (non-empty-string? "")
#f
与其使用一些繁琐的正则表达式(有一句关于正则表达式的名言……),不如考虑只表达您想要的内容:一个所有字符都是空格的字符串:
(define (string-whitespace? s)
(for/and ([c (in-string s)])
(char-whitespace? c)))
请注意,空字符串可以轻松满足这一要求。但是空串也是一个none的字符串,其字符是白色的,所以大概是:
(define (string-not-whitespace? s)
(or (string=? s "")
(not (string-whitespace? s))))
我先 trim 字符串:
> (non-empty-string? " ")
#t
> (non-empty-string? (string-trim " "))
#f
> (non-empty-string? (string-trim "
"))
#f
string-trim 不在 racket/base 中,不像 regexp-match-exact? , 但我看到的正则表达式越少,我感觉越好,所以我宁愿让它担心删除空格的正确正则表达式是什么。
如何检查字符串是否为空或 racket 中是否全是空白字符? the example on their site (string$?
) 无效
将 regexp-match-exact? 与此正则表达式一起使用:#px"\s*"
,它匹配空白字符零次或多次:
> (regexp-match-exact? #px"\s*" "a")
#f
> (regexp-match-exact? #px"\s*" "")
#t
> (regexp-match-exact? #px"\s*" " ")
#t
> (regexp-match-exact? #px"\s*" "
")
#t
non-empty-string?
对于空字符串和带有空白字符的字符串有不同的结果:
> (non-empty-string? " ")
#t
> (non-empty-string? "")
#f
与其使用一些繁琐的正则表达式(有一句关于正则表达式的名言……),不如考虑只表达您想要的内容:一个所有字符都是空格的字符串:
(define (string-whitespace? s)
(for/and ([c (in-string s)])
(char-whitespace? c)))
请注意,空字符串可以轻松满足这一要求。但是空串也是一个none的字符串,其字符是白色的,所以大概是:
(define (string-not-whitespace? s)
(or (string=? s "")
(not (string-whitespace? s))))
我先 trim 字符串:
> (non-empty-string? " ")
#t
> (non-empty-string? (string-trim " "))
#f
> (non-empty-string? (string-trim "
"))
#f
string-trim 不在 racket/base 中,不像 regexp-match-exact? , 但我看到的正则表达式越少,我感觉越好,所以我宁愿让它担心删除空格的正确正则表达式是什么。