Property definitions

core $ Match :: defaultinit
# Matches are a part of a `Text` found by a `Pattern`.
class Match
	# The base string matched
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.string == "hello world"
	# ~~~
	var string: String

	# The starting position in the string
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.from == 3
	# ~~~
	var from: Int

	# The length of the matching part
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.length == 2
	# ~~~
	var length: Int

	# The position of the first character just after the matching part.
	# May be out of the base string
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.after == 5
	# ~~~
	fun after: Int do return from + length

	# The contents of the matching part
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.to_s == "lo"
	# ~~~
	redef fun to_s do return string.substring(from,length)

	# The content of `string` before the match
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.text_before == "hel"
	# ~~~
	fun text_before: String do return string.substring(0, from)

	# The content of `string` after the match
	#
	# ~~~
	# var m = "hello world".search("lo")
	# assert m.text_after == " world"
	# ~~~
	fun text_after: String do return string.substring_from(after)

	init
	do
		assert positive_length: length >= 0
		assert valid_from: from >= 0
		assert valid_after: from + length <= string.length
	end
end
lib/core/text/string_search.nit:237,1--302,3