changeset 1719:2f3a8f16f583

add regex.split
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 25 Jul 2022 14:31:48 -0600
parents 5603ee8e2a71
children 2f4c99c02436
files src/luan/modules/Boot.luan src/luan/modules/RegexLuan.java website/src/manual.html.luan
diffstat 3 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/luan/modules/Boot.luan	Mon Jul 25 11:32:05 2022 -0600
+++ b/src/luan/modules/Boot.luan	Mon Jul 25 14:31:48 2022 -0600
@@ -59,6 +59,7 @@
 		match = regex.match
 		matches = regex.matches
 		set = regex.set
+		split = regex.split
 	}
 end
 Boot.regex = regex
--- a/src/luan/modules/RegexLuan.java	Mon Jul 25 11:32:05 2022 -0600
+++ b/src/luan/modules/RegexLuan.java	Mon Jul 25 14:31:48 2022 -0600
@@ -144,4 +144,10 @@
 	public boolean matches(String s) {
 		return pattern.matcher(s).find();
 	}
+
+	public String[] split(String s,Integer limit) throws LuanException {
+		Utils.checkNotNull(s);
+		int n = limit==null ? -1 : limit;
+		return pattern.split(s,n);
+	}
 }
--- a/website/src/manual.html.luan	Mon Jul 25 11:32:05 2022 -0600
+++ b/website/src/manual.html.luan	Mon Jul 25 14:31:48 2022 -0600
@@ -3032,6 +3032,26 @@
 <%
 						end
 					}
+					["regex.set"] = {
+						title = "<code>regex.set (pattern)</code>"
+						content = function()
+%>
+<p>
+Changes the regex pattern to <code>pattern</code>.
+</p>
+<%
+						end
+					}
+					["regex.split"] = {
+						title = "<code>regex.split (s [, limit])</code>"
+						content = function()
+%>
+<p>
+Splits <code>s</code> using the regex and returns the results.  If <code>limit</code> is positive, then only returns at most that many results.  If <code>limit</code> is zero, then remove trailing empty results.
+</p>
+<%
+						end
+					}
 				}
 			}
 			binary_lib = {