์ ๊ท์์ ๋ํ ์ฐ๊ตฌ๋ฅผ ๊ณ์ํด ๋ด
์๋ค. ์ด ๊ธฐ์ฌ์์๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฌธ์ ํด๋์ค์ ์๋ํ(์ํ์ค ๊ฒ์)๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฏธ๋ฆฌ ์ ์๋ ๋ฌธ์ ํด๋์ค
ํด๋์ค API์๋Pattern
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ๊ท์์ ๋ํ ํธ๋ฆฌํ ๋ฐ๋ก ๊ฐ๊ธฐ๋ฅผ ์ ๊ณตํ๋ ์ฌ์ ์ ์๋ ๋ฌธ์ ํด๋์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ํ์์ ์ผ์ชฝ ์ด์ ๊ตฌ๋ฌธ์ ์ค๋ฅธ์ชฝ ์ด์ ํํ์์ ๊ฐ๋ตํ๊ฒ ํํํ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด \d
์ซ์(0-9), \w
๋๋ฌธ์ ๋๋ ์๋ฌธ์, ๋ฐ์ค ๋๋ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ฐ๋ฅํ๋ฉด ๋ฏธ๋ฆฌ ์ ์๋ ๋ฌธ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ฝ๊ณ ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋ฐฑ์ฌ๋์๋ก ์์ํ๋ ๊ตฌ๋ฌธ์ ์ด์ค์ผ์ดํ ๋๋ ๋ณดํธ๋ผ๊ณ ํฉ๋๋ค. \Q
์ด์ ๊ธฐ์ฌ์์ ๋ฐฑ์ฌ๋์๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌ ํ๊ณ \E
์ด๋ฅผ ์ผ๋ฐ ๋ฌธ์๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ ๋ํด ์ด๋ฏธ ์ค๋ช
ํ์ต๋๋ค . ์ผ๋ฐ ๋ฌธ์(๋ฆฌํฐ๋ด)์ ํจ๊ป ๋ฐฑ์ฌ๋์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํํ์์ ์ปดํ์ผํ๋ ค๋ฉด ๋ฐฑ์ฌ๋์๋ฅผ ์ด์ค์ผ์ดํ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
private final String REGEX = "\\d"; // ัะธััะฐ
์ด ์์์๋ \d
์ ๊ท์์
๋๋ค. ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํ๋ ค๋ฉด ์ถ๊ฐ ๋ฐฑ์ฌ๋์๊ฐ ํ์ํฉ๋๋ค. ํ
์คํธ ํ๋ก๊ทธ๋จ์ ์ฝ์์์ ์ง์ ์ ๊ท์์ ์ฝ์ผ๋ฏ๋ก ์ถ๊ฐ ์ฌ๋์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ค์ ์์์๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฌธ์ ํด๋์ค์ ์ฌ์ฉ์ ๋ณด์ฌ์ค๋๋ค. ์ฒ์ ์ธ ๊ฐ์ง ์์์ ์ ๊ท์์ ๋จ์ํ .
๋ชจ๋ ๋ฌธ์๋ฅผ ์๋ฏธํ๋ " "(์ ํน์ ๋ฌธ์)์
๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ฒ์์ด ์ฑ๊ณตํ์ต๋๋ค. ๋ค๋ฅธ ์์์๋ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฌธ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๊ทธ ์๋ฏธ๋ ์ ํ์์ ๋
ผ์ํ์ต๋๋ค.
์๋์
์๋์๋ฅผ ์ฌ์ฉ ํ๋ฉด ๋ฌธ์์ด์์ ๋ฌธ์์ ๋ฐ์ ํ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ํ์์ค๋ฌ์ด ์๋์, ๊ฒ์ผ๋ฅธ ์๋์, ๋งค์ฐ ํ์์ค๋ฌ์ด ์๋์๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ธ๋ป ๋ณด๋ฉด ์๋์ X?, X?? ๊ทธ๋ฆฌ๊ณ X?+๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ฆ, "X๋ ํ ๋ฒ ์กด์ฌํ๊ฑฐ๋ ์ ํ ์กด์ฌํ์ง ์์ต๋๋ค." ์ด๋ฌํ ์๋์์ ๊ตฌํ์๋ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๋๋ฐ, ์ด์ ๋ํด์๋ ์๋์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.๊ธธ์ด๊ฐ 0์ธ ์ผ์น
์์ฌ ๋ง์ ๊ฒ๋ถํฐ ์์ํฉ์๋ค. ๋ฌธ์ "a"์ ํน์ ๋ฌธ์ ?, * ๋๋ +๋ผ๋ ์ธ ๊ฐ์ง ์ ๊ท์์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. ๋น ์ค์์ ์ด๋ฌํ ์ ๊ท ํํ์์ ํ ์คํธํ๋ฉด ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์์ ์์์ ํํ์ a? ๋๋ฌธ์ ์ฒ์ ๋ ๊ฒฝ์ฐ์์ ๊ฒ์์ด ์ฑ๊ณตํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ a*๋ ๋ฌธ์ a๊ฐ ๋ฌธ์์ด์์ ๋๋ฝ๋๋ ๊ฒ์ ํ์ฉํฉ๋๋ค. ๋ํ ์์ ๋ฐ ๋ง์ง๋ง ์ผ์น ์ธ๋ฑ์ค๋ ๋์ผํฉ๋๋ค(0). ์ ๋ ฅ ๋ฌธ์์ด์๋ ๊ธธ์ด๊ฐ ์์ผ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ฒซ ๋ฒ์งธ ์์น์์ ์๋ฌด ๊ฒ๋ ์ฐพ์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ๋ฅผ ๊ธธ์ด๊ฐ 0์ธ ์ผ์น๋ผ๊ณ ํฉ๋๋ค. ์ด๋ฌํ ์ผ์น๋ ์ ๋ ฅ ์ค์ด ๋น์ด ์๋ ๊ฒฝ์ฐ, ์ ๋ ฅ ์ค์ ์์ ๋ถ๋ถ, ์ค์ ๋ง์ง๋ง ๋ฌธ์ ๋ค ๋๋ ์ค์ ๋ฌธ์ ์ฌ์ด ๋ฑ ์ฌ๋ฌ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค. ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค. ๋์ผํ ์์น์์ ์์ํ๊ณ ๋๋ฉ๋๋ค. ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ ๋ช ๊ฐ์ง ์๋ฅผ ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ช ๊ฐ์ง ์๋ฅผ ๋ ๋ค์ด ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ ๋ ฅ ๋ฌธ์์ด์ ๋ฌธ์ "a"๋ก ๋ณ๊ฒฝํ๊ณ ํฅ๋ฏธ๋ก์ด ํจ๊ณผ๋ฅผ ๊ด์ฐฐํด ๋ณด๊ฒ ์ต๋๋ค. ์ธ ์๋์ ๋ชจ๋ ๋ฌธ์ "a"๋ฅผ ์ฐพ์์ง๋ง ๋ฌธ์๊ฐ ์๋ ๊ฒ์ ํ์ฉํ๋ ์ฒ์ ๋ ์๋์๋ ์์น 1์์ ๊ธธ์ด๊ฐ 0์ธ ์ผ์น๋ฅผ ์ฐพ์์ต๋๋ค. - ๋ฌธ์์ด์ ๋ง์ง๋ง ๋ฌธ์ ๋ค. ์ด๋ ํ๋ก๊ทธ๋จ์ด ๋ฌธ์ "a"๋ฅผ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌํ๊ณ ๋ ์ด์ ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ ๋๊น์ง "์คํ"ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ๋ ์๋์์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ๋ฌธ์์ด ๋์์ "์๋ฌด๊ฒ๋" ์ฐพ์ง ์๊ฑฐ๋ ์ฐพ์ง ์์ต๋๋ค. ์ด์ ์ ๋ ฅ ๋ฌธ์์ด์ 5๊ฐ์ ๋ฌธ์ "a" ์ํ์ค๋ก ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ์ ๊ท์ a? ๋ฌธ์์ด์ ๊ฐ ๋ฌธ์์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ์ผ์นํ๋ ํญ๋ชฉ์ ์ฐพ์ต๋๋ค. a* ํํ์์ ๋ ๊ฐ์ ์ผ์น ํญ๋ชฉ, ์ฆ ๋ฌธ์ ์ํ์ค "a"'์ ์์น 5์์ ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ ์ฐพ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก, ์ ๊ท์ a+๋ "์๋ฌด๊ฒ๋" ์ฐพ์ง ์๊ณ ๋ฌธ์ "a"์ ์ํ์ค๋ง ์ฐพ์ต๋๋ค. :) ๋ค๋ฅธ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์๋ฅผ ๋ค์ด, "ababaaaab": ๋ฌธ์ "b"๋ ์์น 1, 3, 8์ ์๊ณ ํ๋ก๊ทธ๋จ์ ์ด ์์น์์ ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ ์ฐพ์ต๋๋ค. ์ ๊ท์์? "b"์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์๊ณ ๋จ์ํ ๋ฌธ์ "a"์ ์กด์ฌ(๋๋ ๋ถ์ฌ)๋ฅผ ์ฐพ์ต๋๋ค. ์๋์๊ฐ "a"์ ๋ถ์ฌ๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ ๋ฌธ์์ด์์ "a"๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ ๊ธธ์ด๊ฐ 0์ธ ์ผ์น ํญ๋ชฉ์ผ๋ก ํ์๋ฉ๋๋ค. ์ฃผ์ด์ง ๊ธธ์ด์ ์ํ์ค๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ค๊ดํธ๋ก ๊ธธ์ด๋ฅผ ์ง์ ํ๋ฉด ๋ฉ๋๋ค. ์ ๊ท์ a{3}๋ ์ธ ๊ฐ์ "a" ๋ฌธ์ ์ํ์ค๋ฅผ ์ฐพ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ค์๋ a๊ฐ ์ถฉ๋ถํ์ง ์์ ์๋ฌด๊ฒ๋ ๋ฐ๊ฒฌ๋์ง ์์์ต๋๋ค. ๋ ๋ฒ์งธ์๋ ํ๋ก๊ทธ๋จ์ด ์ฐพ๋ 3๊ฐ์ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ธ ๋ฒ์งธ ํ ์คํธ์์๋ ๋ฌธ์์ด ์์ ๋ถ๋ถ์์ ์ผ์นํ๋ ํญ๋ชฉ์ ์ฐพ์ต๋๋ค. ์ธ ๋ฒ์งธ ๋ฌธ์ ์ดํ์ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ท์์ ์ถฉ์กฑํ์ง ์์ต๋๋ค. ์๋ ์ฝ๋์์๋ ์ ๊ท์์ ์ถฉ์กฑํ๋ฉฐ ์ฌ๋ฌ ์ผ์น ํญ๋ชฉ์ด ์์ต๋๋ค. ์ต์ ์ํ์ค ๊ธธ์ด๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ธ์.Enter your regex: a{3,}
Enter input string to search: aaaaaaaaa
I found the text "aaaaaaaaa" starting at index 0 and ending at index 9.
์ด ์์์๋ ๋ฌธ์์ด์ด (3) "a" ๋ฌธ์์ ์ต์ ์ํ์ค ๊ธธ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ผ์น ํญ๋ชฉ์ ํ๋๋ง ์ฐพ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ต๋ ์ํ์ค ๊ธธ์ด๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ์์์ ์ฒซ ๋ฒ์งธ ์ผ์น๋ 6๋ฒ์งธ ๋ฌธ์์์ ๋๋ฌ์ต๋๋ค. ๋ ๋ฒ์งธ ์ผ์น ํญ๋ชฉ์๋ ์ฌ์ฏ ๋ฒ์งธ ํญ๋ชฉ ์ดํ์ ๋ฌธ์๊ฐ ํฌํจ๋ฉ๋๋ค. ์ต์ ๊ธธ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค. ๋ฌธ์์ด์ด ํ ๋ฌธ์ ๋ ์งง์ผ๋ฉด ๋ ๋ฒ์งธ ์ผ์น ํญ๋ชฉ์ด ์์ต๋๋ค.
GO TO FULL VERSION