假设我有一个字符串x="1. this should be capitalized"
现在,如果我想检查第一个字母是否大写
s = "1. (t)his should be capitalized"
s2 = match(r"^.*?([a-zA-Z])", s).captures[1]
@show all(islowercase, s2)
# true
如果我做islowercase(s2)
,我会得到MethodError
。尽管我也可以做@show uppercasefirst(s2) != s2
,但这似乎不必要。
答案 0 :(得分:2)
您已经注意到,islowercase
仅适用于单个字符,而不适用于字符串。要从正则表达式匹配字符串中提取第一个字符,可以使用first
:
julia> s = "1. (t)his should be capitalized";
julia> s2 = match(r"^.*?([a-zA-Z])", s).captures[1]
"t"
julia> islowercase(first(s2))
true
答案 1 :(得分:1)
您也可以执行以下操作:
s = "1. (t)his should be capitalized";
s2 = s[findfirst(r"[:alpha]", s)[1]]
islowercase(s2)
答案 2 :(得分:0)
无需正则表达式。只需直接在字符串上使用islowercase
(通过喷溅和广播),即可获取第一个真实结果的索引。
findfirst( islowercase.([ x... ]) )
如果您的字符串语法不一致,也可以检查它是否是字母。
findfirst( islowercase.( [ x... ] ) .& isletter.( [ x... ] ) )