/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String str
= "some text p.o. box 12456 Floor 105 streetName Street"; //Pattern p = Pattern.compile("p\\.?o\\.?\\s*box \\d+(\\z|\\s)");
//p.*o.*box \\d+(\\z|\\s)
Pattern p = Pattern.compile("p.*o.*box \\d+(\\z|\\s)");
Matcher m = p.matcher(str);
int count =0;
while(m.find()) {
count++;
System.
out.
println("Match: "+m.
group(0)); System.
out.
println("Match number "+count
); System.
out.
println("start(): "+m.
start()); System.
out.
println("end(): "+m.
end()); }
str = "po box 1011";
p = Pattern.compile("p\\.?o\\.?\\s*box \\d+(\\z|\\s)");
m = p.matcher(str);
count =0;
while(m.find()) {
count++;
System.
out.
println("Match: "+m.
group(0)); System.
out.
println("Match number "+count
); System.
out.
println("start(): "+m.
start()); System.
out.
println("end(): "+m.
end()); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgc3RyID0gInNvbWUgdGV4dCBwLm8uIGJveCAxMjQ1NiBGbG9vciAxMDUgc3RyZWV0TmFtZSBTdHJlZXQiOwoJCS8vUGF0dGVybiBwID0gUGF0dGVybi5jb21waWxlKCJwXFwuP29cXC4/XFxzKmJveCBcXGQrKFxcenxcXHMpIik7IAoJCS8vcC4qby4qYm94IFxcZCsoXFx6fFxccykKCQlQYXR0ZXJuIHAgPSBQYXR0ZXJuLmNvbXBpbGUoInAuKm8uKmJveCBcXGQrKFxcenxcXHMpIik7CgkgICAgTWF0Y2hlciBtID0gcC5tYXRjaGVyKHN0cik7IAoJICAgIGludCBjb3VudCA9MDsKCSAgICB3aGlsZShtLmZpbmQoKSkgewoJICAgICAgICAgICBjb3VudCsrOwoJICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoOiAiK20uZ3JvdXAoMCkpOwoJICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoIG51bWJlciAiK2NvdW50KTsKCSAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzdGFydCgpOiAiK20uc3RhcnQoKSk7CgkgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZW5kKCk6ICIrbS5lbmQoKSk7CgkgICAgfQoJICAgIAoJICAgIHN0ciA9ICJwbyBib3ggMTAxMSI7CgkgICAgcCA9IFBhdHRlcm4uY29tcGlsZSgicFxcLj9vXFwuP1xccypib3ggXFxkKyhcXHp8XFxzKSIpOyAKCSAgICBtID0gcC5tYXRjaGVyKHN0cik7IAoJICAgIGNvdW50ID0wOwoJICAgIHdoaWxlKG0uZmluZCgpKSB7CgkgICAgICAgICAgIGNvdW50Kys7CgkgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWF0Y2g6ICIrbS5ncm91cCgwKSk7CgkgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWF0Y2ggbnVtYmVyICIrY291bnQpOwoJICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInN0YXJ0KCk6ICIrbS5zdGFydCgpKTsKCSAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbmQoKTogIittLmVuZCgpKTsKCSAgICB9Cgl9Cn0=