import regex
fn main(){
regex_test(
r'(?P<hoge>i[co]?)',
"https://jp.magicode.io/k.suzuki")
}
fn regex_test(
pattern string,
text string
) {
mut re := regex.regex_opt(pattern) or { panic(err) }
println("Original:${text}")
print("find:")
println(re.find(text)) // (14,16) 最初のhit位置
print("find_all:")
println(re.find_all(text)) // [14,16,...] hit位置
print("find_all_str:")
println(re.find_all_str(text)) // ['ic','io','i'] hit文字
print("find_from:")
println(re.find_from(text,15)) // (20,22) どこから探すか(byte)
print("get_group_bounds_by_id:")
println(re.get_group_bounds_by_id(0)) // (20,22) 見つかったグループの番号 find系に依存
print("get_group_bounds_by_name:")
println(re.get_group_bounds_by_name("hoge")) // (20,22) 見つかったグループの名前 find系に依存
print("get_group_by_id:")
println(re.get_group_by_id(text,0))
print("get_group_by_name:")
println(re.get_group_by_name(text,"hoge"))
print("get_group_list:")
println(re.get_group_list())
print("match_string:")
println(re.match_string(text))
print("matches_string:")
println(re.matches_string(text)) // false
print("replace:")
println(re.replace(text,r'<\0>')) // https://jp.mag<ic>ode.<io>/k.suzuk<i> 置換
// print("replace_by_fn:")
// println(re.replace_by_fn(text,{'A'}))
print("replace_n:")
println(re.replace_n(text,r'<\0>',1)) // https://jp.mag<ic>ode.<io>/k.suzuk<i> 置換 limit
print("replace_simple:")
println(re.replace_simple(text,r'<\0>')) // https://jp.mag<\0>ode.<\0>/k.suzuk<\0> 置換 hitは使えない
}