Skip to content

Instantly share code, notes, and snippets.

@rklemme
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rklemme/10451386 to your computer and use it in GitHub Desktop.
Save rklemme/10451386 to your computer and use it in GitHub Desktop.
Test program for a specific number match.
i = 0
s = '0'
s = '0foo'
s = '0bar '
s = '020'
s = 'foo0'
s = 'foo0foo'
s = 'foo0bar '
s = 'foo020'
s = 'bar 0'
s = 'bar 0foo'
s = 'bar 0bar '
s = 'bar 020'
s = '200'
s = '200foo'
s = '200bar '
s = '20020'
i = 1
s = '1'
Matches: '1'
Finds: '1'
s = '1foo'
Finds: '1'
s = '1bar '
Finds: '1'
s = '120'
s = 'foo1'
Finds: '1'
s = 'foo1foo'
Finds: '1'
s = 'foo1bar '
Finds: '1'
s = 'foo120'
s = 'bar 1'
Finds: '1'
s = 'bar 1foo'
Finds: '1'
s = 'bar 1bar '
Finds: '1'
s = 'bar 120'
s = '201'
s = '201foo'
s = '201bar '
s = '20120'
i = 2
s = '2'
Matches: '2'
Finds: '2'
s = '2foo'
Finds: '2'
s = '2bar '
Finds: '2'
s = '220'
s = 'foo2'
Finds: '2'
s = 'foo2foo'
Finds: '2'
s = 'foo2bar '
Finds: '2'
s = 'foo220'
s = 'bar 2'
Finds: '2'
s = 'bar 2foo'
Finds: '2'
s = 'bar 2bar '
Finds: '2'
s = 'bar 220'
s = '202'
s = '202foo'
s = '202bar '
s = '20220'
i = 3
s = '3'
Matches: '3'
Finds: '3'
s = '3foo'
Finds: '3'
s = '3bar '
Finds: '3'
s = '320'
s = 'foo3'
Finds: '3'
s = 'foo3foo'
Finds: '3'
s = 'foo3bar '
Finds: '3'
s = 'foo320'
s = 'bar 3'
Finds: '3'
s = 'bar 3foo'
Finds: '3'
s = 'bar 3bar '
Finds: '3'
s = 'bar 320'
s = '203'
s = '203foo'
s = '203bar '
s = '20320'
i = 4
s = '4'
Matches: '4'
Finds: '4'
s = '4foo'
Finds: '4'
s = '4bar '
Finds: '4'
s = '420'
s = 'foo4'
Finds: '4'
s = 'foo4foo'
Finds: '4'
s = 'foo4bar '
Finds: '4'
s = 'foo420'
s = 'bar 4'
Finds: '4'
s = 'bar 4foo'
Finds: '4'
s = 'bar 4bar '
Finds: '4'
s = 'bar 420'
s = '204'
s = '204foo'
s = '204bar '
s = '20420'
i = 5
s = '5'
Matches: '5'
Finds: '5'
s = '5foo'
Finds: '5'
s = '5bar '
Finds: '5'
s = '520'
s = 'foo5'
Finds: '5'
s = 'foo5foo'
Finds: '5'
s = 'foo5bar '
Finds: '5'
s = 'foo520'
s = 'bar 5'
Finds: '5'
s = 'bar 5foo'
Finds: '5'
s = 'bar 5bar '
Finds: '5'
s = 'bar 520'
s = '205'
s = '205foo'
s = '205bar '
s = '20520'
i = 6
s = '6'
Matches: '6'
Finds: '6'
s = '6foo'
Finds: '6'
s = '6bar '
Finds: '6'
s = '620'
s = 'foo6'
Finds: '6'
s = 'foo6foo'
Finds: '6'
s = 'foo6bar '
Finds: '6'
s = 'foo620'
s = 'bar 6'
Finds: '6'
s = 'bar 6foo'
Finds: '6'
s = 'bar 6bar '
Finds: '6'
s = 'bar 620'
s = '206'
s = '206foo'
s = '206bar '
s = '20620'
i = 7
s = '7'
Matches: '7'
Finds: '7'
s = '7foo'
Finds: '7'
s = '7bar '
Finds: '7'
s = '720'
s = 'foo7'
Finds: '7'
s = 'foo7foo'
Finds: '7'
s = 'foo7bar '
Finds: '7'
s = 'foo720'
s = 'bar 7'
Finds: '7'
s = 'bar 7foo'
Finds: '7'
s = 'bar 7bar '
Finds: '7'
s = 'bar 720'
s = '207'
s = '207foo'
s = '207bar '
s = '20720'
i = 8
s = '8'
Matches: '8'
Finds: '8'
s = '8foo'
Finds: '8'
s = '8bar '
Finds: '8'
s = '820'
s = 'foo8'
Finds: '8'
s = 'foo8foo'
Finds: '8'
s = 'foo8bar '
Finds: '8'
s = 'foo820'
s = 'bar 8'
Finds: '8'
s = 'bar 8foo'
Finds: '8'
s = 'bar 8bar '
Finds: '8'
s = 'bar 820'
s = '208'
s = '208foo'
s = '208bar '
s = '20820'
i = 9
s = '9'
Matches: '9'
Finds: '9'
s = '9foo'
Finds: '9'
s = '9bar '
Finds: '9'
s = '920'
s = 'foo9'
Finds: '9'
s = 'foo9foo'
Finds: '9'
s = 'foo9bar '
Finds: '9'
s = 'foo920'
s = 'bar 9'
Finds: '9'
s = 'bar 9foo'
Finds: '9'
s = 'bar 9bar '
Finds: '9'
s = 'bar 920'
s = '209'
s = '209foo'
s = '209bar '
s = '20920'
i = 10
s = '10'
Matches: '10'
Finds: '10'
s = '10foo'
Finds: '10'
s = '10bar '
Finds: '10'
s = '1020'
s = 'foo10'
Finds: '10'
s = 'foo10foo'
Finds: '10'
s = 'foo10bar '
Finds: '10'
s = 'foo1020'
s = 'bar 10'
Finds: '10'
s = 'bar 10foo'
Finds: '10'
s = 'bar 10bar '
Finds: '10'
s = 'bar 1020'
s = '2010'
s = '2010foo'
s = '2010bar '
s = '201020'
i = 11
s = '11'
Matches: '11'
Finds: '11'
s = '11foo'
Finds: '11'
s = '11bar '
Finds: '11'
s = '1120'
s = 'foo11'
Finds: '11'
s = 'foo11foo'
Finds: '11'
s = 'foo11bar '
Finds: '11'
s = 'foo1120'
s = 'bar 11'
Finds: '11'
s = 'bar 11foo'
Finds: '11'
s = 'bar 11bar '
Finds: '11'
s = 'bar 1120'
s = '2011'
s = '2011foo'
s = '2011bar '
s = '201120'
i = 12
s = '12'
Matches: '12'
Finds: '12'
s = '12foo'
Finds: '12'
s = '12bar '
Finds: '12'
s = '1220'
s = 'foo12'
Finds: '12'
s = 'foo12foo'
Finds: '12'
s = 'foo12bar '
Finds: '12'
s = 'foo1220'
s = 'bar 12'
Finds: '12'
s = 'bar 12foo'
Finds: '12'
s = 'bar 12bar '
Finds: '12'
s = 'bar 1220'
s = '2012'
s = '2012foo'
s = '2012bar '
s = '201220'
i = 13
s = '13'
Matches: '13'
Finds: '13'
s = '13foo'
Finds: '13'
s = '13bar '
Finds: '13'
s = '1320'
s = 'foo13'
Finds: '13'
s = 'foo13foo'
Finds: '13'
s = 'foo13bar '
Finds: '13'
s = 'foo1320'
s = 'bar 13'
Finds: '13'
s = 'bar 13foo'
Finds: '13'
s = 'bar 13bar '
Finds: '13'
s = 'bar 1320'
s = '2013'
s = '2013foo'
s = '2013bar '
s = '201320'
i = 14
s = '14'
Matches: '14'
Finds: '14'
s = '14foo'
Finds: '14'
s = '14bar '
Finds: '14'
s = '1420'
s = 'foo14'
Finds: '14'
s = 'foo14foo'
Finds: '14'
s = 'foo14bar '
Finds: '14'
s = 'foo1420'
s = 'bar 14'
Finds: '14'
s = 'bar 14foo'
Finds: '14'
s = 'bar 14bar '
Finds: '14'
s = 'bar 1420'
s = '2014'
s = '2014foo'
s = '2014bar '
s = '201420'
i = 15
s = '15'
Matches: '15'
Finds: '15'
s = '15foo'
Finds: '15'
s = '15bar '
Finds: '15'
s = '1520'
s = 'foo15'
Finds: '15'
s = 'foo15foo'
Finds: '15'
s = 'foo15bar '
Finds: '15'
s = 'foo1520'
s = 'bar 15'
Finds: '15'
s = 'bar 15foo'
Finds: '15'
s = 'bar 15bar '
Finds: '15'
s = 'bar 1520'
s = '2015'
s = '2015foo'
s = '2015bar '
s = '201520'
i = 16
s = '16'
Matches: '16'
Finds: '16'
s = '16foo'
Finds: '16'
s = '16bar '
Finds: '16'
s = '1620'
s = 'foo16'
Finds: '16'
s = 'foo16foo'
Finds: '16'
s = 'foo16bar '
Finds: '16'
s = 'foo1620'
s = 'bar 16'
Finds: '16'
s = 'bar 16foo'
Finds: '16'
s = 'bar 16bar '
Finds: '16'
s = 'bar 1620'
s = '2016'
s = '2016foo'
s = '2016bar '
s = '201620'
i = 17
s = '17'
Matches: '17'
Finds: '17'
s = '17foo'
Finds: '17'
s = '17bar '
Finds: '17'
s = '1720'
s = 'foo17'
Finds: '17'
s = 'foo17foo'
Finds: '17'
s = 'foo17bar '
Finds: '17'
s = 'foo1720'
s = 'bar 17'
Finds: '17'
s = 'bar 17foo'
Finds: '17'
s = 'bar 17bar '
Finds: '17'
s = 'bar 1720'
s = '2017'
s = '2017foo'
s = '2017bar '
s = '201720'
i = 18
s = '18'
Matches: '18'
Finds: '18'
s = '18foo'
Finds: '18'
s = '18bar '
Finds: '18'
s = '1820'
s = 'foo18'
Finds: '18'
s = 'foo18foo'
Finds: '18'
s = 'foo18bar '
Finds: '18'
s = 'foo1820'
s = 'bar 18'
Finds: '18'
s = 'bar 18foo'
Finds: '18'
s = 'bar 18bar '
Finds: '18'
s = 'bar 1820'
s = '2018'
s = '2018foo'
s = '2018bar '
s = '201820'
i = 19
s = '19'
Matches: '19'
Finds: '19'
s = '19foo'
Finds: '19'
s = '19bar '
Finds: '19'
s = '1920'
s = 'foo19'
Finds: '19'
s = 'foo19foo'
Finds: '19'
s = 'foo19bar '
Finds: '19'
s = 'foo1920'
s = 'bar 19'
Finds: '19'
s = 'bar 19foo'
Finds: '19'
s = 'bar 19bar '
Finds: '19'
s = 'bar 1920'
s = '2019'
s = '2019foo'
s = '2019bar '
s = '201920'
i = 20
s = '20'
Matches: '20'
Finds: '20'
s = '20foo'
Finds: '20'
s = '20bar '
Finds: '20'
s = '2020'
s = 'foo20'
Finds: '20'
s = 'foo20foo'
Finds: '20'
s = 'foo20bar '
Finds: '20'
s = 'foo2020'
s = 'bar 20'
Finds: '20'
s = 'bar 20foo'
Finds: '20'
s = 'bar 20bar '
Finds: '20'
s = 'bar 2020'
s = '2020'
s = '2020foo'
s = '2020bar '
s = '202020'
i = 21
s = '21'
s = '21foo'
s = '21bar '
s = '2120'
s = 'foo21'
s = 'foo21foo'
s = 'foo21bar '
s = 'foo2120'
s = 'bar 21'
s = 'bar 21foo'
s = 'bar 21bar '
s = 'bar 2120'
s = '2021'
s = '2021foo'
s = '2021bar '
s = '202120'
i = 22
s = '22'
s = '22foo'
s = '22bar '
s = '2220'
s = 'foo22'
s = 'foo22foo'
s = 'foo22bar '
s = 'foo2220'
s = 'bar 22'
s = 'bar 22foo'
s = 'bar 22bar '
s = 'bar 2220'
s = '2022'
s = '2022foo'
s = '2022bar '
s = '202220'
i = 23
s = '23'
s = '23foo'
s = '23bar '
s = '2320'
s = 'foo23'
s = 'foo23foo'
s = 'foo23bar '
s = 'foo2320'
s = 'bar 23'
s = 'bar 23foo'
s = 'bar 23bar '
s = 'bar 2320'
s = '2023'
s = '2023foo'
s = '2023bar '
s = '202320'
i = 24
s = '24'
s = '24foo'
s = '24bar '
s = '2420'
s = 'foo24'
s = 'foo24foo'
s = 'foo24bar '
s = 'foo2420'
s = 'bar 24'
s = 'bar 24foo'
s = 'bar 24bar '
s = 'bar 2420'
s = '2024'
s = '2024foo'
s = '2024bar '
s = '202420'
i = 25
s = '25'
s = '25foo'
s = '25bar '
s = '2520'
s = 'foo25'
s = 'foo25foo'
s = 'foo25bar '
s = 'foo2520'
s = 'bar 25'
s = 'bar 25foo'
s = 'bar 25bar '
s = 'bar 2520'
s = '2025'
s = '2025foo'
s = '2025bar '
s = '202520'
i = 26
s = '26'
s = '26foo'
s = '26bar '
s = '2620'
s = 'foo26'
s = 'foo26foo'
s = 'foo26bar '
s = 'foo2620'
s = 'bar 26'
s = 'bar 26foo'
s = 'bar 26bar '
s = 'bar 2620'
s = '2026'
s = '2026foo'
s = '2026bar '
s = '202620'
i = 27
s = '27'
s = '27foo'
s = '27bar '
s = '2720'
s = 'foo27'
s = 'foo27foo'
s = 'foo27bar '
s = 'foo2720'
s = 'bar 27'
s = 'bar 27foo'
s = 'bar 27bar '
s = 'bar 2720'
s = '2027'
s = '2027foo'
s = '2027bar '
s = '202720'
i = 28
s = '28'
s = '28foo'
s = '28bar '
s = '2820'
s = 'foo28'
s = 'foo28foo'
s = 'foo28bar '
s = 'foo2820'
s = 'bar 28'
s = 'bar 28foo'
s = 'bar 28bar '
s = 'bar 2820'
s = '2028'
s = '2028foo'
s = '2028bar '
s = '202820'
i = 29
s = '29'
s = '29foo'
s = '29bar '
s = '2920'
s = 'foo29'
s = 'foo29foo'
s = 'foo29bar '
s = 'foo2920'
s = 'bar 29'
s = 'bar 29foo'
s = 'bar 29bar '
s = 'bar 2920'
s = '2029'
s = '2029foo'
s = '2029bar '
s = '202920'
package regexp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RoedyNumberMatch {
private static final String[] P_FIXES = { "", "foo", "bar ", "20" };
private static final Pattern PAT = Pattern
.compile("(?<!\\d)(?:20|1\\d|[1-9])(?!\\d)");
public static void main(String[] args) {
final Matcher m = PAT.matcher("");
for (int i = 0; i < 30; ++i) {
System.out.println("i = " + i);
for (final String pre : P_FIXES) {
for (final String post : P_FIXES) {
final String s = pre + i + post;
System.out.println("s = '" + s + "'");
if (m.reset(s).matches()) {
System.out.println("Matches: '" + m.group() + "'");
}
if (m.reset(s).find()) {
System.out.println("Finds: '" + m.group() + "'");
}
}
}
System.out.println();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment