Julia:检查字符串中的第一个字母是否为小写首选语法
Julia: Check if first Letter in String Is Lowercase preferred syntax
假设我有一个字符串 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
但这似乎不必要地冗长。
如您所知,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
不需要正则表达式。直接在你的字符串上使用 islowercase
(通过 splatting 和 broadcasting),得到第一个真实结果的索引。
findfirst( islowercase.([ x... ]) )
如果你的字符串语法不一致,你也可以检查它是否是一个字母。
findfirst( islowercase.( [ x... ] ) .& isletter.( [ x... ] ) )
您也可以执行以下操作:
s = "1. (t)his should be capitalized";
s2 = s[findfirst(r"[:alpha]", s)[1]]
islowercase(s2)
假设我有一个字符串 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
但这似乎不必要地冗长。
如您所知,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
不需要正则表达式。直接在你的字符串上使用 islowercase
(通过 splatting 和 broadcasting),得到第一个真实结果的索引。
findfirst( islowercase.([ x... ]) )
如果你的字符串语法不一致,你也可以检查它是否是一个字母。
findfirst( islowercase.( [ x... ] ) .& isletter.( [ x... ] ) )
您也可以执行以下操作:
s = "1. (t)his should be capitalized";
s2 = s[findfirst(r"[:alpha]", s)[1]]
islowercase(s2)