我可以使用occursin函式,但它的haystack引數不能是正則運算式,這意味著我必須將整個字母數字字串傳遞給它。在 Julia 中有沒有一種巧妙的方法來做到這一點?
uj5u.com熱心網友回復:
我不確定您的假設occursin是否正確:
julia> occursin(r"[a-zA-z]", "ABC123")
true
julia> occursin(r"[a-zA-z]", "123")
false
uj5u.com熱心網友回復:
但它的
haystack引數不能是正則運算式,這意味著我必須將整個字母數字字串傳遞給它。
如果你指的是它的needle論點,它可以是一個正則運算式,例如:
julia> occursin(r"^[[:alnum:]]*$", "adf24asg24y")
true
julia> occursin(r"^[[:alnum:]]*$", "adf24asg2_4y")
false
這將檢查給定的haystack字串是否使用 Unicode 感知字符類
來檢查給定的字串是否為字母數字[[:alnum:]],您可以將其視為等效于[a-zA-Z\d],也擴展到非英文字符。(與 Unicode 一樣,“完美”的解決方案涉及更多的作業和復雜性,但這會花費你大部分時間。)
如果你的意思是你希望haystack引數是一個正則運算式,那么不清楚你為什么要在這里,以及為什么“我必須將整個字母數字字串傳遞給它”是一件壞事。
uj5u.com熱心網友回復:
如前所述,您確實可以將正則運算式與 一起使用occursin,并且效果很好。但您也可以推出自己的版本,非常簡單:
isalphanumeric(c::AbstractChar) = isletter(c) || ('0' <= c <= '9')
isalphanumeric(str::AbstractString) = all(isalphanumeric, str)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473910.html
下一篇:如何分離和替換特定的刮掉的字串?
