Add partial prefixes in some places to regular-expressions

See #394 for details.

This closes #288 by providing a lighter-weight approach.
This commit is contained in:
Eli Bendersky 2021-09-10 05:56:40 -07:00
parent 2570a9c136
commit 4de485a514
4 changed files with 18 additions and 18 deletions

View File

@ -31,7 +31,7 @@ func main() {
// This also finds the first match but returns the // This also finds the first match but returns the
// start and end indexes for the match instead of the // start and end indexes for the match instead of the
// matching text. // matching text.
fmt.Println(r.FindStringIndex("peach punch")) fmt.Println("idx:", r.FindStringIndex("peach punch"))
// The `Submatch` variants include information about // The `Submatch` variants include information about
// both the whole-pattern matches and the submatches // both the whole-pattern matches and the submatches
@ -50,7 +50,7 @@ func main() {
// These `All` variants are available for the other // These `All` variants are available for the other
// functions we saw above as well. // functions we saw above as well.
fmt.Println(r.FindAllStringSubmatchIndex( fmt.Println("all:", r.FindAllStringSubmatchIndex(
"peach punch pinch", -1)) "peach punch pinch", -1))
// Providing a non-negative integer as the second // Providing a non-negative integer as the second
@ -70,7 +70,7 @@ func main() {
// returning an error, which makes it safer to use for // returning an error, which makes it safer to use for
// global variables. // global variables.
r = regexp.MustCompile("p([a-z]+)ch") r = regexp.MustCompile("p([a-z]+)ch")
fmt.Println(r) fmt.Println("regexp:", r)
// The `regexp` package can also be used to replace // The `regexp` package can also be used to replace
// subsets of strings with other values. // subsets of strings with other values.

View File

@ -1,2 +1,2 @@
c0dd720036ac70269ce233bf47c5d6aefd43161f 5c3bcf9f8c61fc074143f766c4517e445a6d9b0f
LEKGY_d3Nu_P htCqJrLdh9Q

View File

@ -2,14 +2,14 @@ $ go run regular-expressions.go
true true
true true
peach peach
[0 5] idx: [0 5]
[peach ea] [peach ea]
[0 5 1 3] [0 5 1 3]
[peach punch pinch] [peach punch pinch]
[[0 5 1 3] [6 11 7 9] [12 17 13 15]] all: [[0 5 1 3] [6 11 7 9] [12 17 13 15]]
[peach punch] [peach punch]
true true
p([a-z]+)ch regexp: p([a-z]+)ch
a <fruit> a <fruit>
a PEACH a PEACH

View File

@ -43,7 +43,7 @@ in Go.</p>
</td> </td>
<td class="code leading"> <td class="code leading">
<a href="http://play.golang.org/p/LEKGY_d3Nu_P"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" /> <a href="http://play.golang.org/p/htCqJrLdh9Q"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span> <pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
</pre> </pre>
</td> </td>
@ -141,7 +141,7 @@ matching text.</p>
<td class="code leading"> <td class="code leading">
<pre class="chroma"> <pre class="chroma">
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindStringIndex</span><span class="p">(</span><span class="s">&#34;peach punch&#34;</span><span class="p">))</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;idx:&#34;</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nf">FindStringIndex</span><span class="p">(</span><span class="s">&#34;peach punch&#34;</span><span class="p">))</span>
</pre> </pre>
</td> </td>
</tr> </tr>
@ -200,7 +200,7 @@ functions we saw above as well.</p>
<td class="code leading"> <td class="code leading">
<pre class="chroma"> <pre class="chroma">
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindAllStringSubmatchIndex</span><span class="p">(</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;all:&#34;</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nf">FindAllStringSubmatchIndex</span><span class="p">(</span>
<span class="s">&#34;peach punch pinch&#34;</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="s">&#34;peach punch pinch&#34;</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
</pre> </pre>
</td> </td>
@ -250,7 +250,7 @@ global variables.</p>
<pre class="chroma"> <pre class="chroma">
<span class="nx">r</span> <span class="p">=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nf">MustCompile</span><span class="p">(</span><span class="s">&#34;p([a-z]+)ch&#34;</span><span class="p">)</span> <span class="nx">r</span> <span class="p">=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nf">MustCompile</span><span class="p">(</span><span class="s">&#34;p([a-z]+)ch&#34;</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">&#34;regexp:&#34;</span><span class="p">,</span> <span class="nx">r</span><span class="p">)</span>
</pre> </pre>
</td> </td>
</tr> </tr>
@ -300,14 +300,14 @@ text with a given function.</p>
<span class="go">true <span class="go">true
</span><span class="go">true </span><span class="go">true
</span><span class="go">peach </span><span class="go">peach
</span><span class="go">[0 5] </span><span class="go">idx: [0 5]
</span><span class="go">[peach ea] </span><span class="go">[peach ea]
</span><span class="go">[0 5 1 3] </span><span class="go">[0 5 1 3]
</span><span class="go">[peach punch pinch] </span><span class="go">[peach punch pinch]
</span><span class="go">[[0 5 1 3] [6 11 7 9] [12 17 13 15]] </span><span class="go">all: [[0 5 1 3] [6 11 7 9] [12 17 13 15]]
</span><span class="go">[peach punch] </span><span class="go">[peach punch]
</span><span class="go">true </span><span class="go">true
</span><span class="go">p([a-z]+)ch </span><span class="go">regexp: p([a-z]+)ch
</span><span class="go">a &lt;fruit&gt; </span><span class="go">a &lt;fruit&gt;
</span><span class="go">a PEACH</span></pre> </span><span class="go">a PEACH</span></pre>
</td> </td>
@ -340,7 +340,7 @@ the <a href="http://golang.org/pkg/regexp/"><code>regexp</code></a> package docs
</div> </div>
<script> <script>
var codeLines = []; var codeLines = [];
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"bytes\"\u000A \"fmt\"\u000A \"regexp\"\u000A)\u000A');codeLines.push('func main() {\u000A');codeLines.push(' match, _ :\u003D regexp.MatchString(\"p([a-z]+)ch\", \"peach\")\u000A fmt.Println(match)\u000A');codeLines.push(' r, _ :\u003D regexp.Compile(\"p([a-z]+)ch\")\u000A');codeLines.push(' fmt.Println(r.MatchString(\"peach\"))\u000A');codeLines.push(' fmt.Println(r.FindString(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindStringIndex(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindStringSubmatch(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindStringSubmatchIndex(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindAllString(\"peach punch pinch\", -1))\u000A');codeLines.push(' fmt.Println(r.FindAllStringSubmatchIndex(\u000A \"peach punch pinch\", -1))\u000A');codeLines.push(' fmt.Println(r.FindAllString(\"peach punch pinch\", 2))\u000A');codeLines.push(' fmt.Println(r.Match([]byte(\"peach\")))\u000A');codeLines.push(' r \u003D regexp.MustCompile(\"p([a-z]+)ch\")\u000A fmt.Println(r)\u000A');codeLines.push(' fmt.Println(r.ReplaceAllString(\"a peach\", \"\u003Cfruit\u003E\"))\u000A');codeLines.push(' in :\u003D []byte(\"a peach\")\u000A out :\u003D r.ReplaceAllFunc(in, bytes.ToUpper)\u000A fmt.Println(string(out))\u000A}\u000A');codeLines.push('');codeLines.push(''); codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"bytes\"\u000A \"fmt\"\u000A \"regexp\"\u000A)\u000A');codeLines.push('func main() {\u000A');codeLines.push(' match, _ :\u003D regexp.MatchString(\"p([a-z]+)ch\", \"peach\")\u000A fmt.Println(match)\u000A');codeLines.push(' r, _ :\u003D regexp.Compile(\"p([a-z]+)ch\")\u000A');codeLines.push(' fmt.Println(r.MatchString(\"peach\"))\u000A');codeLines.push(' fmt.Println(r.FindString(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(\"idx:\", r.FindStringIndex(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindStringSubmatch(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindStringSubmatchIndex(\"peach punch\"))\u000A');codeLines.push(' fmt.Println(r.FindAllString(\"peach punch pinch\", -1))\u000A');codeLines.push(' fmt.Println(\"all:\", r.FindAllStringSubmatchIndex(\u000A \"peach punch pinch\", -1))\u000A');codeLines.push(' fmt.Println(r.FindAllString(\"peach punch pinch\", 2))\u000A');codeLines.push(' fmt.Println(r.Match([]byte(\"peach\")))\u000A');codeLines.push(' r \u003D regexp.MustCompile(\"p([a-z]+)ch\")\u000A fmt.Println(\"regexp:\", r)\u000A');codeLines.push(' fmt.Println(r.ReplaceAllString(\"a peach\", \"\u003Cfruit\u003E\"))\u000A');codeLines.push(' in :\u003D []byte(\"a peach\")\u000A out :\u003D r.ReplaceAllFunc(in, bytes.ToUpper)\u000A fmt.Println(string(out))\u000A}\u000A');codeLines.push('');codeLines.push('');
</script> </script>
<script src="site.js" async></script> <script src="site.js" async></script>
</body> </body>