From f5c4671bfbad96bf346bd7e9a21fc4317b4959df Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sat, 3 Dec 2022 17:00:20 +0530 Subject: Adds most of the tools --- v_windows/v/examples/regex/pcre.vv | 69 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 v_windows/v/examples/regex/pcre.vv (limited to 'v_windows/v/examples/regex/pcre.vv') diff --git a/v_windows/v/examples/regex/pcre.vv b/v_windows/v/examples/regex/pcre.vv new file mode 100644 index 0000000..72beaf5 --- /dev/null +++ b/v_windows/v/examples/regex/pcre.vv @@ -0,0 +1,69 @@ +module main + +// NB: you need to `v install pcre` to be able to compile this example. + +import pcre + +fn example() { + r := pcre.new_regex('Match everything after this: (.+)', 0) or { + println('An error occured!') + return + } + + m := r.match_str('Match everything after this: "I ❤️ VLang!"', 0, 0) or { + println('No match!') + return + } + + // m.get(0) -> Match everything after this: "I ❤️ VLang!" + // m.get(1) -> "I ❤️ VLang!"' + // m.get(2) -> Error! + whole_match := m.get(0) or { + println('We matched nothing...') + return + } + + matched_str := m.get(1) or { + println('We matched nothing...') + return + } + + println(whole_match) // Match everything after this: "I ❤️ VLang!" + println(matched_str) // "I ❤️ VLang!" +} + +fn main() { + example() + + mut text := '[ an s. s! ]( wi4ki:something ) + [ an s. s! ]( wi4ki:something ) + [ an s. s! ](wiki:something) + [ an s. s! ](something)dd + d [ an s. s! ](something ) d + [ more text ]( something ) s [ something b ](something)dd + + ' + + // check the regex on https://regex101.com/r/HdYya8/1/ + + regex := r'(\[[a-z\.\! ]*\]\( *\w*\:*\w* *\))*' + + r := pcre.new_regex(regex, 0) or { + println('An error occured!') + return + } + + m := r.match_str(text, 0, 0) or { + println('No match!') + return + } + + whole_match1 := m.get(0) or { + println('We matched nothing 0...') + return + } + + println(whole_match1) + + println(m.get_all()) +} -- cgit v1.2.3