朱莉娅:检查字符串中的第一个字母是否为小写首选语法

时间:2019-07-16 09:53:32

标签: regex julia lowercase

假设我有一个字符串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,但这似乎不必要。

3 个答案:

答案 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... ] ) )