クラスPattern
- ã™ã¹ã¦ã®å®Ÿè£…ã•れãŸã‚¤ãƒ³ã‚¿ãƒ•ェース:
Serializable
æ£è¦è¡¨ç¾ã¯ã€æ–‡å—列ã¨ã—ã¦æŒ‡å®šã—ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ã‚³ãƒ³ãƒ‘イルã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ çµæžœã®ãƒ‘ターンを使用ã—ã¦ã€ä»»æ„ã®æ–‡å—シーケンスをæ£è¦è¡¨ç¾ã¨ãƒžãƒƒãƒã§ãã‚‹Matcherオブジェクトを作æˆã§ãã¾ã™ã€‚ マッãƒã‚’実行ã—ãŸã¨ãã®çŠ¶æ…‹ã¯ã™ã¹ã¦ãƒžãƒƒãƒãƒ£ã«æ ¼ç´ã•れã¾ã™ã€‚ã“ã®ãŸã‚ã€è¤‡æ•°ã®ãƒžãƒƒãƒãƒ£ãŒåŒã˜ãƒ‘ターンを共有ã§ãã¾ã™ã€‚
標準的ãªå‘¼å‡ºã—シーケンスã¯ã€æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches();
ã“ã®ã‚¯ãƒ©ã‚¹ã«å®šç¾©ã—ãŸmatchesメソッドを使用ã™ã‚Œã°ã€æ£è¦è¡¨ç¾ã¯ä¸€åº¦ä½¿ç”¨ã™ã‚‹ã ã‘ã§æ¸ˆã¿ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’1回呼ã³å‡ºã™ã ã‘ã§ã€è¡¨ç¾ãŒã‚³ãƒ³ãƒ‘イルã•れã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ã®ãƒžãƒƒãƒãŒè¡Œã‚れã¾ã™ã€‚ æ¬¡ã®æ–‡
boolean b = Pattern.matches("a*b", "aaaaab");
ãŸã ã—ã€ãƒžãƒƒãƒã‚’繰り返ã™å ´åˆã¯ã€ã‚³ãƒ³ãƒ‘イル済ã¿ã®ãƒ‘ターンをå†åˆ©ç”¨ã§ããªã„ãŸã‚ã€åŠ¹çŽ‡ãŒä½Žä¸‹ã—ã¾ã™ã€‚
ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯ä¸å¤‰ã§ã‚ã‚‹ãŸã‚ã€è¤‡æ•°ã®ã‚¹ãƒ¬ãƒƒãƒ‰ã§ä¸¦è¡Œã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚ Matcherクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯ã€ãã®ã‚ˆã†ãªç”¨é€”ã«å®‰å…¨ã«ä½¿ç”¨ã§ãã¾ã›ã‚“。
æ£è¦è¡¨ç¾æ§‹æ–‡ã®ã‚µãƒžãƒªãƒ¼
| コンストラクト | 一致 |
|---|---|
| æ–‡å— | |
| x | æ–‡å—x |
\\ |
ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥æ–‡å— |
\0n |
8進数値0nã®æ–‡å— (0 <= n <= 7) |
\0nn |
8進数値0nnã®æ–‡å— (0 <= n <= 7) |
\0mnn |
8進数値0mnnã®æ–‡å— (0 <= m <= 3, 0 <= n <= 7) |
\xhh |
16進値0xhhã®æ–‡å— |
\uhhhh |
16進値0xhhhhã®æ–‡å— |
\x{h...h} |
16進値0xh...hã®æ–‡å— (Character.MIN_CODE_POINT <= 0xh...h <= Character.MAX_CODE_POINT) |
\N{name} |
Unicodeæ–‡å—ã®åå‰ãŒ'name'ã®æ–‡å— |
\t |
タブ文å—('\u0009') |
\n |
改行(ライン・フィード)æ–‡å—('\u000A') |
\r |
ã‚ãƒ£ãƒªãƒƒã‚¸ãƒ»ãƒªã‚¿ãƒ¼ãƒ³æ–‡å— ('\u000D') |
\f |
フォーム・フィード文å—('\u000C') |
\a |
アラート(ベル)æ–‡å—('\u0007') |
\e |
エスケープ文å—('\u001B') |
\cx |
xã«å¯¾å¿œã™ã‚‹åˆ¶å¾¡æ–‡å— |
| æ–‡å—クラス | |
[abc] |
aã€bã€ã¾ãŸã¯c (å˜ç´”クラス) |
[^abc] |
aã€bã€cä»¥å¤–ã®æ–‡å—(å¦å®š) |
[a-zA-Z] |
a - zã¾ãŸã¯A - Z (範囲) |
[a-d[m-p]] |
a - dã¾ãŸã¯m - p: [a-dm-p] (çµåˆ) |
[a-z&&[def]] |
dã€eã€ã¾ãŸã¯f (交差) |
[a-z&&[^bc]] |
a - z (bã¨cを除ã): [ad-z] (減算) |
[a-z&&[^m-p]] |
a - z (m - pを除ã): [a-lq-z] (減算) |
| 定義済ã¿ã®æ–‡å—クラス | |
. |
ä»»æ„ã®æ–‡å—(行末記å·ã¨ãƒžãƒƒãƒã™ã‚‹å ´åˆã‚‚ã‚ã‚‹) |
\d |
æ•°å—: UNICODE_CHARACTER_CLASSãŒè¨å®šã•れã¦ã„ãªã„å ´åˆã¯[0-9]。 「Unicodeサãƒãƒ¼ãƒˆã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 |
\D |
æ•°å—以外: [^0-9] |
\h |
水平方å‘ã®ç©ºç™½æ–‡å—: [ \t\xA0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000] |
\H |
水平以外ã®ç©ºç™½æ–‡å—: [^\h] |
\s |
空白文å—: UNICODE_CHARACTER_CLASSãŒè¨å®šã•れã¦ã„ãªã„å ´åˆã¯[ \t\n\x0B\f\r]。 「Unicodeサãƒãƒ¼ãƒˆã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 |
\S |
ç©ºç™½ä»¥å¤–ã®æ–‡å—: [^\s] |
\v |
垂直方å‘ã®ç©ºç™½æ–‡å—: [\n\x0B\f\r\x85\u2028\u2029]
|
\V |
垂直方å‘以外ã®ç©ºç™½æ–‡å—: [^\v] |
\w |
å˜èªžæ–‡å—: UNICODE_CHARACTER_CLASSãŒè¨å®šã•れã¦ã„ãªã„å ´åˆã¯[a-zA-Z_0-9]。 「Unicodeサãƒãƒ¼ãƒˆã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 |
\W |
å˜èªžä»¥å¤–ã®æ–‡å—: [^\w] |
| POSIXæ–‡å—クラス(US-ASCIIã®ã¿) | |
\p{Lower} |
å°æ–‡å—ã®è‹±å—: [a-z] |
\p{Upper} |
大文å—ã®è‹±å—: [A-Z] |
\p{ASCII} |
ã™ã¹ã¦ã®ASCIIæ–‡å—: [\x00-\x7F] |
\p{Alpha} |
英å—: [\p{Lower}\p{Upper}] |
\p{Digit} |
10 進数å—: [0-9] |
\p{Alnum} |
英数å—: [\p{Alpha}\p{Digit}] |
\p{Punct} |
å¥èªæ–‡å—: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ã®1㤠|
\p{Graph} |
表示ã§ãã‚‹æ–‡å—: [\p{Alnum}\p{Punct}] |
\p{Print} |
プリントå¯èƒ½æ–‡å—: [\p{Graph}\x20] |
\p{Blank} |
空白ã¾ãŸã¯ã‚¿ãƒ–: [\t] |
\p{Cntrl} |
制御文å—: [\x00-\x1F\x7F] |
\p{XDigit} |
16進数å—: [0-9a-fA-F] |
\p{Space} |
空白文å—: [\t\n\x0B\f\r] |
| java.lang.Characterクラス(å˜ç´”ãªjavaæ–‡å—タイプ) | |
\p{javaLowerCase} |
java.lang.Character.isLowerCase()ã¨ç‰ä¾¡ |
\p{javaUpperCase} |
java.lang.Character.isUpperCase()ã¨ç‰ä¾¡ |
\p{javaWhitespace} |
java.lang.Character.isWhitespace()ã¨ç‰ä¾¡ |
\p{javaMirrored} |
java.lang.Character.isMirrored()ã¨ç‰ä¾¡ |
| Unicodeスクリプトã€ãƒ–ãƒãƒƒã‚¯ã€ã‚«ãƒ†ã‚´ãƒªã€ãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ティã®ã‚¯ãƒ©ã‚¹ | |
\p{IsLatin} |
Latin スクリプト文å—(スクリプト) |
\p{InGreek} |
Greek ブãƒãƒƒã‚¯ã®æ–‡å—(ブãƒãƒƒã‚¯) |
\p{Lu} |
大文å—(カテゴリ) |
\p{IsAlphabetic} |
英å—(ãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ティ) |
\p{Sc} |
é€šè²¨è¨˜å· |
\P{InGreek} |
ギリシャ語ブãƒãƒƒã‚¯ä»¥å¤–ã®æ–‡å—(å¦å®š) |
[\p{L}&&[^\p{Lu}]] |
大文å—ä»¥å¤–ã®æ–‡å—(減算) |
| 境界マッãƒãƒ£ | |
^ |
行ã®å…ˆé |
$ |
è¡Œã®æœ«å°¾ |
\b |
å˜èªžå¢ƒç•Œ: å˜èªžæ–‡å—(\w)ãŒãã“ã«ç¾ã‚Œã‚‹å ´åˆã€ã¾ãŸã¯å˜èªž(\w)ã¨å˜èªžä»¥å¤–ã®æ–‡å—(\W)ã®é–“ã«ã‚ã‚‹å ´åˆã¯ã€è¡Œã®å…ˆé ã¾ãŸã¯æœ«å°¾ã«ã‚りã¾ã™ã€‚ |
\b{g} |
Unicodeæ‹¡å¼µæ›¸è¨˜ç´ ã‚¯ãƒ©ã‚¹ã‚¿å¢ƒç•Œ |
\B |
å˜èªžä»¥å¤–ã®å¢ƒç•Œ: [^\b] |
\A |
入力ã®å…ˆé |
\G |
å‰å›žã®ãƒžãƒƒãƒã®æœ«å°¾ |
\Z |
最後ã®è¡Œæœ«è¨˜å·ãŒã‚ã‚‹å ´åˆã¯ã€ãれを除ãå…¥åŠ›ã®æœ«å°¾ |
\z |
å…¥åŠ›ã®æœ«å°¾ |
| 改行マッãƒãƒ£ | |
\R |
Unicode改行シーケンスã€\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029] ã¨åŒç‰ã§ã™ |
| Unicode Extended Grapheme matcher | |
\X |
ä»»æ„ã®Unicodeæ‹¡å¼µæ›¸è¨˜ç´ ã‚¯ãƒ©ã‚¹ã‚¿ |
| 最長一致数é‡å | |
X? |
Xã€1ã¾ãŸã¯0回 |
X* |
Xã€0回以上 |
X+ |
Xã€1回以上 |
X{n} |
Xã€æ£ç¢ºã«n回 |
X{n,} |
Xã€n回以上 |
X{n,m} |
Xã€n回以上ã€m回以下 |
| 最çŸä¸€è‡´æ•°é‡å | |
X?? |
Xã€1ã¾ãŸã¯0回 |
X*? |
Xã€0回以上 |
X+? |
Xã€1回以上 |
X{n}? |
Xã€æ£ç¢ºã«n回 |
X{n,}? |
Xã€n回以上 |
X{n,m}? |
Xã€n回以上ã€m回以下 |
| å¼·æ¬²ãªæ•°é‡å | |
X?+ |
Xã€1ã¾ãŸã¯0回 |
X*+ |
Xã€0回以上 |
X++ |
Xã€1回以上 |
X{n}+ |
Xã€æ£ç¢ºã«n回 |
X{n,}+ |
Xã€n回以上 |
X{n,m}+ |
Xã€n回以上ã€m回以下 |
| è«–ç†æ¼”ç®—å | |
| XY | Xã®ç›´å¾Œã«Y |
X|Y |
Xã¾ãŸã¯Y |
(X) |
Xã€ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã—㦠|
| 後方å‚ç…§ | |
\n |
マッãƒã—ãŸn番目ã®ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ— |
\k<name> |
「nameã€ãŒãƒžãƒƒãƒã—ãŸåå‰ä»˜ãã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ— |
| 引用 | |
\ |
ãªã—。ã ãŒã€æ¬¡ã®æ–‡å—を引用ã™ã‚‹ |
\Q |
ãªã—ã€\Eã¾ã§ã®ã™ã¹ã¦ã®æ–‡å—ã‚’\Eã¾ã§å¼•用ã—ã¾ã™ |
\E |
ãªã—ã€\Qã«ã‚ˆã£ã¦é–‹å§‹ã•れãŸå¼•用を終了ã—ã¾ã™ |
| ç‰¹æ®Šãªæ§‹æ–‡(åå‰ä»˜ãã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ã‚„éžã‚ャプãƒãƒ£ãƒªãƒ³ã‚°) | |
(?<name>X) |
Xã€åå‰ä»˜ãã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã—㦠|
(?:X) |
Xã€éžã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã—㦠|
(?idmsuxU-idmsuxU) |
ãªã—。ã ãŒã€ãƒžãƒƒãƒãƒ»ãƒ•ラグi d m s u x Uã®ã‚ªãƒ³ - オフを切り替ãˆã‚‹ |
(?idmsuxU-idmsuxU:X) |
Xã€éžã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã—ã¦ã€ç‰¹å®šã®ãƒ•ラグi d m s u x Uã®ã‚ªãƒ³ - オフ |
(?=X) |
Xã€å¹…ゼãƒã®è‚¯å®šå…ˆèªã¿ |
(?!X) |
Xã€å¹…ゼãƒã®å¦å®šå…ˆèªã¿ |
(?<=X) |
Xã€å¹…ゼãƒã®è‚¯å®šå¾Œèªã¿ |
(?<!X) |
Xã€å¹…ゼãƒã®å¦å®šå¾Œèªã¿ |
(?>X) |
Xã€ç‹¬ç«‹ã—ãŸã€éžã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¨ã—㦠|
ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã€ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã€ãŠã‚ˆã³å¼•用
ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥æ–‡å—('\')ã¯ã€å‰è¿°ã®è¡¨ã«å®šç¾©ã•れã¦ã„るエスケープã•ã‚ŒãŸæ§‹é€ 体を導入ã—ãŸã‚Šã€ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã•れã¦ã„ãªã„æ§‹é€ ä½“ã¨ã—ã¦è§£é‡ˆã•れる文å—を引用符ã§å›²ã‚€ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚ ã—ãŸãŒã£ã¦ã€å¼\\ã¯1ã¤ã®ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã«ä¸€è‡´ã—ã€\{ã¯å·¦ä¸ã‚«ãƒƒã‚³ã«ä¸€è‡´ã—ã¾ã™ã€‚
英å—ã®å‰ã«ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’使用ã—ãŸã¨ãã«ã€ãã®è‹±å—ãŒã‚¨ã‚¹ã‚±ãƒ¼ãƒ—æ§‹æ–‡ã§ãªã„å ´åˆã¯ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚ã“れらã®ãƒ‘ターンã¯ã€æ£è¦è¡¨ç¾è¨€èªžã®ä»Šå¾Œã®æ‹¡å¼µã«äºˆç´„ã•れã¦ã„ã¾ã™ã€‚ 英å—ä»¥å¤–ã®æ–‡å—ã®å ´åˆã¯ã€ãã®æ–‡å—ãŒéžã‚¨ã‚¹ã‚±ãƒ¼ãƒ—æ§‹æ–‡ã«å«ã¾ã‚Œã‚‹ã‹ã©ã†ã‹ã«ã‹ã‹ã‚らãšã€ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’指定ã§ãã¾ã™ã€‚
Javaã‚½ãƒ¼ã‚¹ãƒ»ã‚³ãƒ¼ãƒ‰ã®æ–‡å—列リテラル内ã®ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã¯ã€ã€ŒJava言語仕様ã€ã§å¿…è¦ã§ã‚ã‚‹ã¨è§£é‡ˆã•れã¾ã™ã€‚Unicodeエスケープ(セクション3.3)ã¾ãŸã¯ãã®ä»–ã®æ–‡å—エスケープ(セクション3.10.6)ã¨ã—ã¦è§£é‡ˆã•れã¾ã™ã€‚ ã—ãŸãŒã£ã¦ã€Javaãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ãƒ»ã‚³ãƒ³ãƒ‘イラã«ã‚ˆã‚‹è§£é‡ˆã‹ã‚‰ä¿è·ã™ã‚‹ãŸã‚ã«ã€æ£è¦è¡¨ç¾ã‚’è¡¨ã™æ–‡å—列リテラルã§ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’二é‡ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ ãŸã¨ãˆã°ã€æ–‡å—列リテラル"\b"ã¯ã€æ£è¦è¡¨ç¾ã¨ã—ã¦è§£é‡ˆã•ã‚Œã‚‹å ´åˆã¯1ã¤ã®ãƒãƒƒã‚¯ã‚¹ãƒšãƒ¼ã‚¹æ–‡å—ã«ä¸€è‡´ã—ã€"\\b"ã¯å˜èªžã®å¢ƒç•Œã«ä¸€è‡´ã—ã¾ã™ã€‚ æ–‡å—列リテラル"\(hello\)"ã¯ä¸æ£ã§ã‚りã€ã‚³ãƒ³ãƒ‘イル時エラーãŒç™ºç”Ÿã—ã¾ã™ã€‚æ–‡å—列(hello)をマッãƒã™ã‚‹ã«ã¯ã€æ–‡å—列リテラル"\\(hello\\)"を使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
æ–‡å—クラス
æ–‡å—クラスã¯ã€ä»–ã®æ–‡å—クラス内ã«è¨˜è¿°ã§ãã€çµåˆæ¼”ç®—å(æš—é»™)ãŠã‚ˆã³äº¤å·®æ¼”ç®—å(&&)ã§æ§‹æˆã§ãã¾ã™ã€‚ çµåˆæ¼”ç®—åã¯ã€1ã¤ä»¥ä¸Šã®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ãƒ»ã‚¯ãƒ©ã‚¹ã«å«ã¾ã‚Œã‚‹ã™ã¹ã¦ã®æ–‡å—ã‚’å«ã‚€ã‚¯ãƒ©ã‚¹ã‚’表ã—ã¾ã™ã€‚ 交差演算åã¯ã€2ã¤ã®ã‚ªãƒšãƒ©ãƒ³ãƒ‰ãƒ»ã‚¯ãƒ©ã‚¹ã«å«ã¾ã‚Œã‚‹ã™ã¹ã¦ã®æ–‡å—ã‚’å«ã‚€ã‚¯ãƒ©ã‚¹ã‚’表ã—ã¾ã™ã€‚
æ–‡å—クラス演算åã¯ã€æ¬¡ã®é †ã§å„ªå…ˆé †ä½ãŒé«˜ããªã‚Šã¾ã™ã€‚
| å„ªå…ˆé †ä½ | å | 例 |
|---|---|---|
| 1 | リテラル・エスケープ | \x |
| 2 | グルーピング | [...] |
| 3 | 範囲 | a-z |
| 4 | çµåˆ | [a-e][i-u] |
| 5 | 交差 | [a-z&&[aeiou]] |
実際ã«ã¯ã€ç•°ãªã‚‹ãƒ¡ã‚¿ã‚ャラクタã®ã‚»ãƒƒãƒˆã¯ã€æ–‡å—クラスã®å¤–部ã§ã¯ãªã内部ã«å˜åœ¨ã™ã‚‹ã“ã¨ã«ç•™æ„ã—ã¦ãã ã•ã„。 ãŸã¨ãˆã°ã€æ£è¦è¡¨ç¾.ã¯æ–‡å—クラス内ã§ç‰¹æ®Šãªæ„味を失ã„ã€å¼-ã¯ãƒ¡ã‚¿æ–‡å—ã‚’å½¢æˆã™ã‚‹ç¯„囲ã«ãªã‚Šã¾ã™ã€‚
行末記å·
行末記å·ã¨ã¯ã€å…¥åŠ›æ–‡å—シーケンスã®è¡Œã®æœ«å°¾ã‚’指定ã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹ã€1æ–‡å—ã¾ãŸã¯2æ–‡å—ã®æ–‡å—シーケンスã§ã™ã€‚ æ¬¡ã®æ–‡å—ãŒè¡Œæœ«è¨˜å·ã¨ã—ã¦èªè˜ã•れã¾ã™ã€‚
- 改行(ライン・フィード)æ–‡å—(
'\n')〠- 改行文å—ãŒã™ãã«ç¶šãã‚ãƒ£ãƒªãƒƒã‚¸ãƒ»ãƒªã‚¿ãƒ¼ãƒ³æ–‡å— (
"\r\n")〠- スタンドアãƒãƒ³ã®ã‚ãƒ£ãƒªãƒƒã‚¸ãƒ»ãƒªã‚¿ãƒ¼ãƒ³æ–‡å— (
'\r')〠- 次行文å—(
'\u0085')〠- 行区切り文å—(
'\u2028')ã€ã¾ãŸã¯ - 段è½åŒºåˆ‡ã‚Šæ–‡å—(
'\u2029')。
UNIX_LINESãƒ¢ãƒ¼ãƒ‰ãŒæœ‰åйãªå ´åˆã¯ã€æ”¹è¡Œæ–‡å—ã ã‘ãŒè¡Œæœ«è¨˜å·ã¨ã—ã¦èªè˜ã•れã¾ã™ã€‚
æ£è¦è¡¨ç¾.ã¯ã€DOTALLãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ãªã„ã‹ãŽã‚Šã€è¡Œã®çµ‚了文å—以外ã®ä»»æ„ã®æ–‡å—ã¨ä¸€è‡´ã—ã¾ã™ã€‚
MULTILINEモードãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–化ã•れã¦ã„ãªã„å ´åˆã€æ£è¦è¡¨ç¾^ã¯è¡Œçµ‚了文å—を無視ã—ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹å…¨ä½“ã®å…ˆé ã§ã®ã¿ä¸€è‡´ã—ã¾ã™ã€‚ æ£è¦è¡¨ç¾$ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹å…¨ä½“ã®æœ€å¾Œã«ä¸€è‡´ã—ã¾ã™ãŒã€ãれã«ç¶šãä»–ã®å…¥åŠ›æ–‡å—ãŒãªã„å ´åˆã¯ã€æœ€å¾Œã®è¡Œã®çµ‚了文å—ã®ç›´å‰ã«ã‚‚一致ã—ã¾ã™ã€‚ ãã®ä»–ã®è¡Œã®çµ‚端文å—ã¯ç„¡è¦–ã•れã¾ã™ã€‚ãã®å¾Œã«ä»–ã®å…¥åŠ›æ–‡å—ãŒç¶šãå ´åˆã€æœ€å¾Œã®çµ‚端文å—ã‚‚å«ã¾ã‚Œã¾ã™ã€‚
MULTILINEモードãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã«ãªã£ã¦ã„ã‚‹å ´åˆã€^ã¯ã€å…¥åŠ›ã®æœ€åˆã¨ã€å…¥åŠ›ã®æœ€å¾Œä»¥å¤–ã®ã™ã¹ã¦ã®è¡Œçµ‚了文å—ã®å¾Œã§ä¸€è‡´ã—ã¾ã™ã€‚ MULTILINEモードã®å ´åˆã€$ã¯ã€è¡Œçµ‚了文å—ã®ç›´å‰ã¾ãŸã¯å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®çµ‚端ã«ä¸€è‡´ã—ã¾ã™ã€‚
グループã¨ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°
グループ番å·
ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€å·¦ã‹ã‚‰å³æ–¹å‘ã«å·¦ä¸¸æ‹¬å¼§ã‚’æ•°ãˆã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ç•ªå·ãŒä»˜ã‘られã¾ã™ã€‚ ãŸã¨ãˆã°ã€å¼((A)(B(C)))ã«ã¯ã€æ¬¡ã®4ã¤ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒã‚りã¾ã™:
-
((A)(B(C))) -
(A) -
(B(C)) -
(C)
グループ0ã¯ã€å¸¸ã«è¡¨ç¾å…¨ä½“を表ã—ã¾ã™ã€‚
ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ãŒã“ã®ã‚ˆã†ã«åˆ†é¡žã•れã¦ã‹ã‚‰ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®å„部分シーケンスãŒã“れらã®ã‚°ãƒ«ãƒ¼ãƒ—ã¨ãƒžãƒƒãƒã•れã€ãƒžãƒƒãƒã™ã‚‹ãŸã³ã«éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãŒä¿å˜ã•れã¾ã™ã€‚ ã‚ャプãƒãƒ£ã•れãŸéƒ¨åˆ†ã‚·ãƒ¼ã‚¯ã‚¨ãƒ³ã‚¹ã¯ã€å¾Œæ–¹å‚ç…§ã§ã€è¡¨ç¾å†…ã§ã‚ã¨ã§ä½¿ç”¨ã§ãã¾ã™ã€‚ã¾ãŸã€ãƒžãƒƒãƒæ“作ãŒå®Œäº†ã—ãŸã‚‰ã€ãƒžãƒƒãƒãƒ£ã‹ã‚‰å–り出ã™ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
グループå
ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã«ã¯ã€"name"ã€named-capturing groupã€ã‚’割り当ã¦ã‚‹ã“ã¨ãŒã§ãã€å¾Œã§"name"ã«ã‚ˆã£ã¦é€†å‚ç…§ã•れã¾ã™ã€‚ グループåã¯ã€æ¬¡ã®æ–‡å—ã§æ§‹æˆã•れã¾ã™ã€‚ 最åˆã®æ–‡å—ã¯letterã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
- 大文å—
'A'ã‹ã‚‰'Z'('\u0041'ã‹ã‚‰'\u005a')〠- å°æ–‡å—
'a'ã‹ã‚‰'z'('\u0061'ã‹ã‚‰'\u007a')〠- æ•°å—
'0'ã‹ã‚‰'9'('\u0030'ã‹ã‚‰'\u0039')
named-capturing groupã«ã¯ã€å¼•ãç¶šã「グループ番å·ã€ã§èª¬æ˜Žã•れã¦ã„るよã†ã«ç•ªå·ãŒä»˜ã‘られã¾ã™ã€‚
グループã«é–¢é€£ä»˜ã‘られãŸã‚ャプãƒãƒ£ã•れãŸå…¥åŠ›ã¯å¸¸ã«ã€ã‚°ãƒ«ãƒ¼ãƒ—ãŒæœ€å¾Œã«ä¸€è‡´ã—ãŸéƒ¨åˆ†åˆ—ã§ã™ã€‚ æ•°é‡åã«ã‚ˆã‚Šã‚°ãƒ«ãƒ¼ãƒ—ãŒ2回目ã«è©•価ã•ã‚Œã‚‹å ´åˆã€å‰ã«ã‚ャプãƒãƒ£ã•れãŸå€¤ãŒã‚ã‚‹å ´åˆã¯ã€2回目ã®è©•価ãŒå¤±æ•—ã—ãŸå ´åˆã€ãã®å€¤ãŒä¿æŒã•れã¾ã™ã€‚ æ–‡å—列"aba"ã‚’å¼(a(b)?)+ã¨ãƒžãƒƒãƒã—ã¾ã™ã€‚ãŸã¨ãˆã°ã€2ã¤ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’"b"ã«è¨å®šã—ãŸã¾ã¾ã«ã—ã¾ã™ã€‚ ã‚ャプãƒãƒ£ã•れãŸã™ã¹ã¦ã®å…¥åŠ›ã¯ã€å„マッãƒã®é–‹å§‹æ™‚ã«ç ´æ£„ã•れã¾ã™ã€‚
(?ã§å§‹ã¾ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—ã¯ã€ç´”粋ãªã€Œéžã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ã€ã‚°ãƒ«ãƒ¼ãƒ—ã§ã€ãƒ†ã‚ストã¯ã‚ャプãƒãƒ£ã•れãšã€ã‚°ãƒ«ãƒ¼ãƒ—åˆè¨ˆã«ã¯ã‚«ã‚¦ãƒ³ãƒˆã•れã¾ã›ã‚“。ã¾ãŸã¯ã€ã€Œåå‰ä»˜ãã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ã€ã‚°ãƒ«ãƒ¼ãƒ—ã§ã™ã€‚
Unicodeサãƒãƒ¼ãƒˆ
ã“ã®ã‚¯ãƒ©ã‚¹ã¯ã€ã€ŒUnicodeテクニカル標準 #18: Unicodeæ£è¦è¡¨ç¾ã€ã®ãƒ¬ãƒ™ãƒ«1ã¨ã€RL 2.1標準ç‰ä¾¡ãŠã‚ˆã³RL 2.2æ‹¡å¼µæ›¸è¨˜ç´ ã‚¯ãƒ©ã‚¹ã‚¿ã«æº–æ‹ ã—ã¦ã„ã¾ã™ã€‚
Javaソース・コードã®\u2014ãªã©ã®ã€ŒUnicodeエスケープ・シーケンスã€ã¯ã€ã€ŒJava言語仕様ã€ã®3.3é …ã§èª¬æ˜Žã•れã¦ã„るよã†ã«å‡¦ç†ã•れã¾ã™ã€‚ ã“れらã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—・シーケンスã¯ã€æ£è¦è¡¨ç¾ãƒ‘ーサーã«ã‚ˆã£ã¦ç›´æŽ¥å®Ÿè£…ã•れるãŸã‚ã€ãƒ•ァイルã¾ãŸã¯ã‚ーボードã‹ã‚‰èªã¿è¾¼ã‚“ã 表ç¾ã®ä¸ã§ã‚‚Unicodeエスケープを使用ã§ãã¾ã™ã€‚ ã—ãŸãŒã£ã¦ã€æ–‡å—列"\u2014"ãŠã‚ˆã³"\\u2014"ã¯ç‰ã—ããªã„ãŒã€åŒã˜ãƒ‘ターンã«ã‚³ãƒ³ãƒ‘イルã•れã€16進数値0x2014ã®æ–‡å—ã¨ä¸€è‡´ã—ã¾ã™ã€‚
Unicodeæ–‡å—ã¯ã€ä¾‹ãˆã°è£œåŠ©æ–‡å—U+2011Fã¯ãªãサãƒã‚²ãƒ¼ãƒˆãƒ»ãƒšã‚¢\uD840 \uDD1Fã®äºŒã¤ã®é€£ç¶šã®Unicodeエスケープ・シーケンスã€\x{2011F}ã¨ã—ã¦æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã€æ§‹ç¯‰ç‰©\x{...}ã«è¨˜è¼‰ã®ç›´æŽ¥ã‚ˆã†ã«ã€ãã®ã€Œ16進表記法〠(16進コード・ãƒã‚¤ãƒ³ãƒˆå€¤)を用ã„ã¦è¡¨ç¾ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
「Unicodeæ–‡å—ã®åå‰ã€ã¯ã€åå‰ä»˜ãæ–‡å—æ§‹æˆ\N{...}ã§ã‚µãƒãƒ¼ãƒˆã•れã¾ã™ã€‚ãŸã¨ãˆã°ã€\N{WHITE SMILING FACE}ã¯æ–‡å—\u263Aを指定ã—ã¾ã™ã€‚ ã“ã®ã‚¯ãƒ©ã‚¹ã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹æ–‡å—åã¯ã€Character.codePointOf(name)ã¨ä¸€è‡´ã™ã‚‹æœ‰åйãªUnicodeæ–‡å—åã§ã™ã€‚
「Unicodeæ‹¡å¼µæ›¸è¨˜ç´ ã‚¯ãƒ©ã‚¹ã‚¿ã€ã¯ã€æ›¸è¨˜ç´ クラスタマッãƒãƒ£\Xã¨å¯¾å¿œã™ã‚‹å¢ƒç•Œãƒžãƒƒãƒãƒ£\b{g}ã«ã‚ˆã£ã¦ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚
Unicodeスクリプトã€ãƒ–ãƒãƒƒã‚¯ã€ã‚«ãƒ†ã‚´ãƒªãŠã‚ˆã³ãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ティã¯ã€Perlã¨åŒæ§˜ã«ã€\pãŠã‚ˆã³\Pæ§‹é€ ã§è¨˜è¿°ã•れã¾ã™ã€‚\p{prop}ã¯ã€å…¥åŠ›ã«propプãƒãƒ‘ティãŒã‚ã‚‹å ´åˆã¨ä¸€è‡´ã—ã€\P{prop}ã¯ãã®ãƒ—ãƒãƒ‘ティをæŒã¤å ´åˆã€ä¸€è‡´ã—ã¾ã›ã‚“。
スクリプトã€ãƒ–ãƒãƒƒã‚¯ã€ã‚«ãƒ†ã‚´ãƒªã€ãŠã‚ˆã³ãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ティã¯ã€æ–‡å—クラスã®å†…部ãŠã‚ˆã³å¤–部ã®ã©ã¡ã‚‰ã«ã‚‚使用ã§ãã¾ã™ã€‚
スクリプトã¯ã€IsHiraganaã®ã‚ˆã†ã«ã€æŽ¥é 辞Isを付ã‘ã¦æŒ‡å®šã™ã‚‹ã‹ã€ã¾ãŸã¯ã€script=Hiraganaã‚„sc=Hiraganaã®ã‚ˆã†ã«ã€scriptã‚ーワード(ã¾ãŸã¯ãã®çŸç¸®å½¢å¼sc) を使用ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚
Patternã®ã‚µãƒãƒ¼ãƒˆã™ã‚‹æ›¸ä½“åã¯ã€UnicodeScript.forNameã«ã‚ˆã£ã¦å—ã‘入れられã€å®šç¾©ã•ã‚Œã‚‹æœ‰åŠ¹ãªæ›¸ä½“åã§ã™ã€‚
ブãƒãƒƒã‚¯ã¯ã€InMongolianã®ã‚ˆã†ã«ã€æŽ¥é 辞Inを付ã‘ã¦æŒ‡å®šã™ã‚‹ã‹ã€ã¾ãŸã¯ã€block=Mongolianã‚„blk=Mongolianã®ã‚ˆã†ã«ã€blockã‚ーワード(ã¾ãŸã¯ãã®çŸç¸®å½¢å¼blk)を使用ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚
Patternã®ã‚µãƒãƒ¼ãƒˆã™ã‚‹ãƒ–ãƒãƒƒã‚¯åã¯ã€UnicodeBlock.forNameã«ã‚ˆã£ã¦å—ã‘入れられã€å®šç¾©ã•れる有効ãªãƒ–ãƒãƒƒã‚¯åã§ã™ã€‚
カテゴリã¯ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®æŽ¥é 辞Isã«ã‚ˆã£ã¦æŒ‡å®šã§ãã¾ã™ã€‚\p{L}ã¨\p{IsL}ã®ã©ã¡ã‚‰ã‚‚Unicodeæ–‡å—ã®ã‚«ãƒ†ã‚´ãƒªã‚’示ã—ã¾ã™ã€‚ スクリプトやブãƒãƒƒã‚¯ã¨åŒã˜ã‚ˆã†ã«ã€ã‚«ãƒ†ã‚´ãƒªã‚‚general_category=Luã‚„gc=Luã®ã‚ˆã†ã«ã€ã‚ーワードgeneral_category (ã¾ãŸã¯ãã®çŸç¸®å½¢å¼gc)を使用ã—ã¦æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
サãƒãƒ¼ãƒˆã•れã¦ã„るカテゴリã¯ã€Characterã‚¯ãƒ©ã‚¹ã§æŒ‡å®šã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®The Unicode Standardã«è¨˜è¼‰ã•れã¦ã„ã¾ã™ã€‚ カテゴリåã«ã¤ã„ã¦ã¯ã€æ¨™æº–ã«è¦æº–ã¨æƒ…å ±ãŒå®šç¾©ã•れã¦ã„ã¾ã™ã€‚
ãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ティã¯ã€IsAlphabeticã®ã‚ˆã†ã«ã€æŽ¥é 辞Isを使用ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚ Patternã«ã‚ˆã£ã¦ã‚µãƒãƒ¼ãƒˆã•れるãƒã‚¤ãƒŠãƒªãƒ»ãƒ—ãƒãƒ‘ãƒ†ã‚£ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™
- Alphabetic
- Ideographic
- Letter
- Lowercase
- Uppercase
- Titlecase
- Punctuation
- コントãƒãƒ¼ãƒ«
- White_Space
- Digit
- Hex_Digit
- Join_Control
- Noncharacter_Code_Point
- Assigned
- Emoji
- Emoji_Presentation
- Emoji_Modifier
- Emoji_Modifier_Base
- Emoji_Component
- Extended_Pictographic
次ã®ã€Œäº‹å‰å®šç¾©æ¸ˆã®æ–‡å—クラスã€ãŠã‚ˆã³ã€ŒPOSIXæ–‡å—クラスã€ã¯ã€UNICODE_CHARACTER_CLASSãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€ã€ŒUnicodeテクニカル標準 #18: Unicodeæ£è¦è¡¨ç¾ã€ã®ã€ŒAnnex C: äº’æ›æ€§ãƒ—ãƒãƒ‘ティã€ã®æŽ¨å¥¨äº‹é …ã«æº–æ‹ ã—ã¦ã„ã¾ã™ã€‚
| クラス | 一致 |
|---|---|
\p{Lower} |
å°æ–‡å—:\p{IsLowercase} |
\p{Upper} |
大文å—:\p{IsUppercase} |
\p{ASCII} |
ã™ã¹ã¦ã®ASCIIæ–‡å—: [\x00-\x7F] |
\p{Alpha} |
英å—:\p{IsAlphabetic} |
\p{Digit} |
10é€²æ•°ã®æ–‡å—:\p{IsDigit} |
\p{Alnum} |
英数å—:[\p{IsAlphabetic}\p{IsDigit}] |
\p{Punct} |
å¥èªè¨˜å·:\p{IsPunctuation} |
\p{Graph} |
表示å¯èƒ½ãªæ–‡å—: [^\p{IsWhite_Space}\p{gc=Cc}\p{gc=Cs}\p{gc=Cn}] |
\p{Print} |
プリントå¯èƒ½æ–‡å—: [\p{Graph}\p{Blank}&&[^\p{Cntrl}]] |
\p{Blank} |
空白ã¾ãŸã¯ã‚¿ãƒ–: [\p{IsWhite_Space}&&[^\p{gc=Zl}\p{gc=Zp}\x0a\x0b\x0c\x0d\x85]] |
\p{Cntrl} |
制御文å—: \p{gc=Cc} |
\p{XDigit} |
16進数: [\p{gc=Nd}\p{IsHex_Digit}] |
\p{Space} |
空白文å—:\p{IsWhite_Space} |
\d |
æ•°å—: \p{IsDigit} |
\D |
æ•°å—以外: [^\d] |
\s |
空白文å—: \p{IsWhite_Space} |
\S |
ç©ºç™½ä»¥å¤–ã®æ–‡å—: [^\s] |
\w |
å˜èªžæ–‡å—: [\p{Alpha}\p{gc=Mn}\p{gc=Me}\p{gc=Mc}\p{Digit}\p{gc=Pc}\p{IsJoin_Control}] |
\W |
å˜èªžä»¥å¤–ã®æ–‡å—: [^\w] |
Perl 5ã¨ã®æ¯”較
Patternエンジンã¯ã€Perl 5ã¨åŒã˜ãã€é †åºä»˜ã‘ã•れãŸä»£æ›¿ã«å¯¾ã™ã‚‹å¾“æ¥ã®NFAベースã®ãƒžãƒƒãƒãƒ³ã‚°ã‚’実行ã—ã¾ã™ã€‚
ã“ã®ã‚¯ãƒ©ã‚¹ã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„Perlæ§‹æ–‡
後方å‚照コンストラクトã€n番目ã®ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã®å ´åˆã¯
\g{n}ã€åå‰ä»˜ãã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã®å ´åˆã¯\g{name}。æ¡ä»¶ä»˜ãコンストラクト
(?(condition)X)ãŠã‚ˆã³(?(condition)X|Y)ã€åŸ‹è¾¼ã¿ã‚³ãƒ¼ãƒ‰ãƒ»ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ãƒˆ
(?{code})ãŠã‚ˆã³(??{code})ã€åŸ‹è¾¼ã¿ã‚³ãƒ¡ãƒ³ãƒˆæ§‹æ–‡
(?#comment)ã€ãŠã‚ˆã³å‰å‡¦ç†æ“作
\l\uã€\LãŠã‚ˆã³\U。
ã“ã®ã‚¯ãƒ©ã‚¹ã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹ãŒã€Perlã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„構文。
æ–‡å—クラスã®çµåˆã¨äº¤å·®(å‰è¿°)。
Perlã¨ã®å¤§ããªç›¸é•点
Perlã§ã¯ã€
\1ã‹ã‚‰\9ã¾ã§ã¯å¸¸ã«å¾Œæ–¹å‚ç…§ã¨ã—ã¦è§£é‡ˆã•れã¾ã™ã€‚9より大ãã„ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ãƒ»ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã•ã‚ŒãŸæ•°å€¤ã¯ã€å°‘ãªãã¨ã‚‚多ãã®ã‚µãƒ–表ç¾ãŒå˜åœ¨ã™ã‚‹å ´åˆã¯å¾Œæ–¹å‚ç…§ã¨ã—ã¦æ‰±ã‚れã€å˜åœ¨ã—ãªã„å ´åˆã¯ã€å¯èƒ½ãªå ´åˆã¯8進エスケープã¨ã—ã¦è§£é‡ˆã•れã¾ã™ã€‚ ã“ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã€8 進数ã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã¯å¸¸ã«ã‚¼ãƒã§å§‹ã¾ã‚Šã¾ã™ã€‚ ã“ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã€\1ã‹ã‚‰\9ã¾ã§ã¯å¸¸ã«å¾Œæ–¹å‚ç…§ã¨ã—ã¦è§£é‡ˆã•ã‚Œã€æ£è¦è¡¨ç¾ã®ãã®æ™‚点ã§å¤šãã®éƒ¨åˆ†æ£è¦è¡¨ç¾ãŒå˜åœ¨ã™ã‚‹å ´åˆã¯ã€ãれより大ãã„æ•°å€¤ãŒå¾Œæ–¹å‚ç…§ã¨ã—ã¦å—ã‘入れられã¾ã™ã€‚ãれ以外ã®å ´åˆã¯ã€æ•°å€¤ãŒæ—¢å˜ã®ã‚°ãƒ«ãƒ¼ãƒ—数以下ã¾ãŸã¯1æ¡ã«ãªã‚‹ã¾ã§ã€ãƒ‘ãƒ¼ã‚µãƒ¼ã¯æ•°å€¤ã‚’ドãƒãƒƒãƒ—ã—ã¾ã™ã€‚Perlã§ã¯ã€æœ€å¾Œã®ãƒžãƒƒãƒãŒçµ‚了ã—ãŸå ´æ‰€ã‹ã‚‰ãƒžãƒƒãƒã®å†é–‹ã‚’è¦æ±‚ã™ã‚‹ã¨ãã¯ã€
gフラグを使用ã—ã¾ã™ã€‚ ã“ã®æ©Ÿèƒ½ã¯ã€Matcherクラスã«ã‚ˆã£ã¦æš—é»™çš„ã«æä¾›ã•れã¾ã™ã€‚findメソッドを繰返ã—呼ã³å‡ºã™ã¨ã€ãƒžãƒƒãƒãƒ£ãŒãƒªã‚»ãƒƒãƒˆã•れãªã„ã‹ãŽã‚Šã€æœ€å¾Œã®ãƒžãƒƒãƒãŒçµ‚了ã—ãŸå ´æ‰€ã‹ã‚‰ãƒžãƒƒãƒæ“作ãŒå†é–‹ã—ã¾ã™ã€‚Perl ã§ã¯ã€è¡¨ç¾ã®æœ€ä¸Šä½ã«åŸ‹ã‚è¾¼ã¾ã‚ŒãŸãƒ•ラグãŒè¡¨ç¾å…¨ä½“ã«é©ç”¨ã•れã¾ã™ã€‚ ã“ã®ã‚¯ãƒ©ã‚¹ã®åŸ‹è¾¼ã¿ãƒ•ラグã¯ã€åŸ‹ã‚è¾¼ã¾ã‚ŒãŸå ´æ‰€ã«ã‹ã‹ã‚らãšã€ãã®ç®‡æ‰€ã§ã®ã¿æœ‰åйã«ãªã‚Šã¾ã™ã€‚フラグãŒã‚°ãƒ«ãƒ¼ãƒ—内ã«åŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„ã‚‹å ´åˆã¯ã€Perlã¨åŒæ§˜ã«ã‚°ãƒ«ãƒ¼ãƒ—ã®æœ€å¾Œã§å¾©å…ƒã•れã¾ã™ã€‚
Perlã®ãƒ•リースペーシング・モード (ã“ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã‚³ãƒ¡ãƒ³ãƒˆãƒ»ãƒ¢ãƒ¼ãƒ‰ã¨å‘¼ã°ã‚Œã‚‹)ã¯ã€æ£è¦è¡¨ç¾ã®
(?x)ã§ (ã¾ãŸã¯ã€å¼ã®ã‚³ãƒ³ãƒ‘イル時ã«COMMENTSフラグã«ã‚ˆã£ã¦)指定ã•れã¾ã™ãŒã€æ–‡å—クラス内ã®ç©ºç™½ã‚’無視ã—ã¾ã›ã‚“。 ã“ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã€ã‚³ãƒ¡ãƒ³ãƒˆãƒ»ãƒ¢ãƒ¼ãƒ‰ã®å ´åˆã«æ£è¦è¡¨ç¾ã®ä¸€éƒ¨ã¨ã—ã¦è€ƒæ…®ã•れるよã†ã«ã€æ–‡å—クラス内ã®ç©ºç™½ã‚’エスケープã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
æ£è¦è¡¨ç¾æ§‹é€ ã®å‹•作ã®è©³ç´°ã¯ã€ã€Œæ£è¦è¡¨ç¾ã®ç¿’å¾—, 3rd Editionã€Jeffrey E. F. Friedlã€O 'Reilly and Associatesã€2006å¹´ã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.4
- 外部仕様
- é–¢é€£é …ç›®:
-
フィールドã®ã‚µãƒžãƒªãƒ¼
フィールド修飾åã¨åž‹ãƒ•ィールド説明static final intæ£è¦ç‰ä¾¡ã‚’有効ã«ã—ã¾ã™ã€‚static final int大文å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚static final intパターン内ã§ç©ºç™½ã¨ã‚³ãƒ¡ãƒ³ãƒˆã‚’使用ã§ãるよã†ã«ã—ã¾ã™ã€‚static final intDOTALLモードを有効ã«ã—ã¾ã™ã€‚static final intパターンã®ãƒªãƒ†ãƒ©ãƒ«æ§‹æ–‡è§£æžã‚’有効ã«ã—ã¾ã™ã€‚static final int複数行モードを有効ã«ã—ã¾ã™ã€‚static final intUnicodeã«æº–æ‹ ã—ãŸå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚static final int定義済ã¿ã®æ–‡å—クラスã¨POSIXæ–‡å—クラスã®Unicodeãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’使用å¯èƒ½ã«ã—ã¾ã™ã€‚static final intUnixライン・モードを有効ã«ã—ã¾ã™ã€‚ -
メソッドã®ã‚µãƒžãƒªãƒ¼
修飾åã¨åž‹ãƒ¡ã‚½ãƒƒãƒ‰èª¬æ˜Žã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ãŒæŒ‡å®šã•れãŸå…¥åŠ›æ–‡å—列ã¨ä¸€è‡´ã™ã‚‹ã‹ã©ã†ã‹ã‚’テストã™ã‚‹è¿°èªžã‚’作æˆã—ã¾ã™ã€‚指定ã•れãŸå…¥åŠ›æ–‡å—列ã§ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ãŒæ¤œå‡ºã•れãŸã‹ã©ã†ã‹ã‚’テストã™ã‚‹è¿°èªžã‚’作æˆã—ã¾ã™ã€‚static Pattern指定ã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’パターンã«ã‚³ãƒ³ãƒ‘イルã—ã¾ã™ã€‚static Pattern指定ã•れãŸãƒ•ラグを使用ã—ã¦ã€æŒ‡å®šã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’パターンã«ã‚³ãƒ³ãƒ‘イルã—ã¾ã™ã€‚intflags()ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒãƒ»ãƒ•ラグを返ã—ã¾ã™ã€‚matcher(CharSequence input) 指定ã•れãŸå…¥åŠ›ã¨ã“ã®ãƒ‘ターンをマッãƒã™ã‚‹ãƒžãƒƒãƒãƒ£ã‚’作æˆã—ã¾ã™ã€‚static booleanmatches(String regex, CharSequence input) 指定ã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’コンパイルã—ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã¨ãã®æ£è¦è¡¨ç¾ã‚’マッãƒã—ã¾ã™ã€‚ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—åã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—番å·ã¸ã®å¤‰æ›´ä¸å¯èƒ½ãªãƒžãƒƒãƒ—ã‚’è¿”ã—ã¾ã™ã€‚pattern()ã“ã®ãƒ‘ターンã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«å…ƒã®æ£è¦è¡¨ç¾ã‚’è¿”ã—ã¾ã™ã€‚static String指定ã•れãŸStringã®ãƒªãƒ†ãƒ©ãƒ«ãƒ»ãƒ‘ターンStringã‚’è¿”ã—ã¾ã™ã€‚String[]split(CharSequence input) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’åˆ†å‰²ã—ã¾ã™ã€‚String[]split(CharSequence input, int limit) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’åˆ†å‰²ã—ã¾ã™ã€‚splitAsStream(CharSequence input) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‹ã‚‰ã‚¹ãƒˆãƒªãƒ¼ãƒ を作æˆã—ã¾ã™ã€‚String[]splitWithDelimiters(CharSequence input, int limit) ã“ã®ãƒ‘ターンã®ä¸€è‡´ã‚’囲む入力シーケンスを分割ã—ã€æ–‡å—列ã¨ä¸€è‡´ã™ã‚‹ãƒ‡ãƒªãƒŸã‚¿ã®ä¸¡æ–¹ã‚’è¿”ã—ã¾ã™ã€‚toString()ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ã®æ–‡å—列表ç¾ã‚’è¿”ã—ã¾ã™ã€‚
-
フィールド詳細
-
UNIX_LINES
public static final int UNIX_LINESUnixライン・モードを有効ã«ã—ã¾ã™ã€‚ã“ã®ãƒ¢ãƒ¼ãƒ‰ã§ã¯ã€
.ã€^ãŠã‚ˆã³$ã®å‹•作ã§'\n'行ã®çµ‚了文å—ã®ã¿ãŒèªè˜ã•れã¾ã™ã€‚Unixライン・モードã¯ã€åŸ‹ã‚è¾¼ã¿ãƒ•ラグå¼
(?d)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚- é–¢é€£é …ç›®:
-
CASE_INSENSITIVE
public static final int CASE_INSENSITIVE大文å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚デフォルトã®å¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã§ã¯ã€US-ASCIIæ–‡å—ã‚»ãƒƒãƒˆã®æ–‡å—ã ã‘ãŒãƒžãƒƒãƒã—ã¾ã™ã€‚ Unicodeã«æº–æ‹ ã—ãŸå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã™ã‚‹ã«ã¯ã€
UNICODE_CASEフラグをã“ã®ãƒ•ラグã¨çµ„ã¿åˆã‚ã›ã¦æŒ‡å®šã—ã¾ã™ã€‚大/å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?i)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã“ã®ãƒ•ラグを指定ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒã‚ãšã‹ã«ä½Žä¸‹ã™ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
- é–¢é€£é …ç›®:
-
COMMENTS
public static final int COMMENTSパターン内ã§ç©ºç™½ã¨ã‚³ãƒ¡ãƒ³ãƒˆã‚’使用ã§ãるよã†ã«ã—ã¾ã™ã€‚ã“ã®ãƒ¢ãƒ¼ãƒ‰ã§ã¯ã€ç©ºç™½ã¯ç„¡è¦–ã•れã€
#ã§å§‹ã¾ã‚‹åŸ‹ã‚è¾¼ã¾ã‚ŒãŸã‚³ãƒ¡ãƒ³ãƒˆã¯ã€è¡Œã®çµ‚ã‚りã¾ã§ç„¡è¦–ã•れã¾ã™ã€‚ コメント・モードã§ã¯ã€ãƒ‘ターン文å—列ã«å«ã¾ã‚Œã‚‹æ–‡å—クラス内ã®ç©ºç™½ã¯ç„¡è¦–ã•れã¾ã™ã€‚ ã“ã®ã‚ˆã†ãªç©ºç™½ã¯ã€é‡è¦ã¨è¦‹ãªã•れるãŸã‚ã«ã¯ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚コメント・モードã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?x)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚- é–¢é€£é …ç›®:
-
MULTILINE
public static final int MULTILINE複数行モードを有効ã«ã—ã¾ã™ã€‚複数行モードã§ã¯ã€å¼
^ãŠã‚ˆã³$ã¯ã€ãれãžã‚Œè¡Œã®çµ‚了文å—ã¾ãŸã¯å…¥åŠ›é †åºã®çµ‚了文å—ã®ç›´å¾Œã¾ãŸã¯ç›´å‰ã§ä¸€è‡´ã—ã¾ã™ã€‚ デフォルトã§ã¯ã€ã“れらã®è¡¨ç¾ã¯å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹å…¨ä½“ã®å…ˆé ã¨æœ«å°¾ã«ã ã‘マッãƒã—ã¾ã™ã€‚複数行モードã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?m)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚- é–¢é€£é …ç›®:
-
LITERAL
public static final int LITERALパターンã®ãƒªãƒ†ãƒ©ãƒ«æ§‹æ–‡è§£æžã‚’有効ã«ã—ã¾ã™ã€‚ã“ã®ãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€ãƒ‘ターンを指定ã™ã‚‹å…¥åŠ›æ–‡å—列ã¯ã€ãƒªãƒ†ãƒ©ãƒ«æ–‡å—ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ã—ã¦å‡¦ç†ã•れã¾ã™ã€‚ 入力シーケンス内ã®ãƒ¡ã‚¿ã‚ャラクタã¾ãŸã¯ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—・シーケンスã«ã€ç‰¹åˆ¥ãªæ„味ã¯ã‚りã¾ã›ã‚“。
CASE_INSENSITIVEãŠã‚ˆã³UNICODE_CASEフラグをã“ã®ãƒ•ラグã¨ã¨ã‚‚ã«ä½¿ç”¨ã™ã‚‹ã¨ã€ãƒžãƒƒãƒãƒ³ã‚°ã«å¯¾ã™ã‚‹å½±éŸ¿ãŒç¶æŒã•れã¾ã™ã€‚ ã»ã‹ã®ãƒ•ラグã¯ä¸è¦ã«ãªã‚Šã¾ã™ã€‚
リテラル構文解æžã‚’有効ã«ã™ã‚‹ãŸã‚ã®åŸ‹è¾¼ã¿ãƒ•ラグ文å—ã¯ã‚りã¾ã›ã‚“。
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.5
- é–¢é€£é …ç›®:
-
DOTALL
public static final int DOTALLDOTALLモードを有効ã«ã—ã¾ã™ã€‚dotallモードã§ã¯ã€å¼
.ã¯ã€è¡Œã®çµ‚了文å—ã‚’å«ã‚€ä»»æ„ã®æ–‡å—ã«ä¸€è‡´ã—ã¾ã™ã€‚ デフォルトã§ã¯ã€ã“ã®è¡¨ç¾ã¯è¡Œæœ«è¨˜å·ã«ãƒžãƒƒãƒã—ã¾ã›ã‚“。Dotallモードã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?s)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ (sã¯ã€Perlã§å‘¼ã³å‡ºã•れる"single-line"モードã®ãƒ‹ãƒ¼ãƒ¢ãƒ‹ãƒƒã‚¯ã§ã™ã€‚)- é–¢é€£é …ç›®:
-
UNICODE_CASE
public static final int UNICODE_CASEUnicodeã«æº–æ‹ ã—ãŸå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚ã“ã®ãƒ•ラグã¨
CASE_INSENSITIVEãƒ•ãƒ©ã‚°ã‚’åŒæ™‚ã«æŒ‡å®šã—ãŸå ´åˆã¯ã€Unicodeæ¨™æº–ã«æº–æ‹ ã—ãŸå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ãŒè¡Œã‚れã¾ã™ã€‚ デフォルトã®å¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã§ã¯ã€US-ASCIIæ–‡å—ã‚»ãƒƒãƒˆã®æ–‡å—ã ã‘ãŒãƒžãƒƒãƒã—ã¾ã™ã€‚Unicode対応ã®å ´åˆã®æŠ˜ã‚ŠãŸãŸã¿ã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?u)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã“ã®ãƒ•ラグを指定ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒä½Žä¸‹ã™ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
- é–¢é€£é …ç›®:
-
CANON_EQ
public static final int CANON_EQæ£è¦ç‰ä¾¡ã‚’有効ã«ã—ã¾ã™ã€‚ã“ã®ãƒ•ラグを指定ã—ãŸã¨ãã¯ã€2ã¤ã®æ–‡å—ã®å®Œå…¨ãªæ£è¦åˆ†è§£ãŒãƒžãƒƒãƒã—ãŸå ´åˆã«é™ã‚Šã€ãã‚Œã‚‰ã®æ–‡å—ãŒãƒžãƒƒãƒã™ã‚‹ã¨ã¿ãªã•れã¾ã™ã€‚ ãŸã¨ãˆã°ã€å¼
"a\u030A"ã¯ã€ã“ã®ãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€æ–‡å—列"\u00E5"ã«ä¸€è‡´ã—ã¾ã™ã€‚ デフォルトã®ãƒžãƒƒãƒãƒ³ã‚°ã§ã¯ã€æ£è¦ç‰ä¾¡ãŒè€ƒæ…®ã•れã¾ã›ã‚“。æ£è¦ç‰ä¾¡ã‚’有効ã«ã™ã‚‹ãŸã‚ã®åŸ‹è¾¼ã¿ãƒ•ラグ文å—ã¯ã‚りã¾ã›ã‚“。
ã“ã®ãƒ•ラグを指定ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒä½Žä¸‹ã—ã€ãƒ¡ãƒ¢ãƒªãƒ¼ä¸è¶³ã®ä¸ç¨‹åº¦ã®ãƒªã‚¹ã‚¯ãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
- é–¢é€£é …ç›®:
-
UNICODE_CHARACTER_CLASS
public static final int UNICODE_CHARACTER_CLASS定義済ã¿ã®æ–‡å—クラスã¨POSIXæ–‡å—クラスã®Unicodeãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’使用å¯èƒ½ã«ã—ã¾ã™ã€‚ã“ã®ãƒ•ãƒ©ã‚°ãŒæŒ‡å®šã•れã¦ã„ã‚‹å ´åˆã€(US-ASCIIã®ã¿) 「事å‰å®šç¾©æ¸ˆã®æ–‡å—クラスã€ãŠã‚ˆã³ã€ŒPOSIXæ–‡å—クラスã€ã¯ã€ŒUnicodeテクニカル標準 #18: Unicodeæ£è¦è¡¨ç¾ã€ 「Annex C: äº’æ›æ€§ãƒ—ãƒãƒ‘ティã€ã«æº–æ‹ ã—ã¦ã„ã¾ã™ã€‚
UNICODE_CHARACTER_CLASSモードã¯ã€åŸ‹è¾¼ã¿ãƒ•ラグå¼
(?U)を使用ã—ã¦æœ‰åйã«ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚フラグã¯UNICODE_CASEã‚’æ„味ã—ã¦ã„ã¾ã™ã€‚ã¤ã¾ã‚Šã€Unicodeã«æº–æ‹ ã—ãŸå¤§æ–‡å—ã¨å°æ–‡å—を区別ã—ãªã„マッãƒãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚
ã“ã®ãƒ•ラグを指定ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒä½Žä¸‹ã™ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.7
- 外部仕様
- é–¢é€£é …ç›®:
-
-
メソッドã®è©³ç´°
-
compile
指定ã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’パターンã«ã‚³ãƒ³ãƒ‘イルã—ã¾ã™ã€‚- パラメータ:
regex- コンパイルã•れる表ç¾- 戻り値:
- パターンã«ã‚³ãƒ³ãƒ‘イルã™ã‚‹æŒ‡å®šã•ã‚ŒãŸæ£è¦è¡¨ç¾
- スãƒãƒ¼:
PatternSyntaxException- 表ç¾ã®æ§‹æ–‡ãŒç„¡åйã§ã‚ã‚‹å ´åˆ
-
compile
指定ã•れãŸãƒ•ラグを使用ã—ã¦ã€æŒ‡å®šã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’パターンã«ã‚³ãƒ³ãƒ‘イルã—ã¾ã™ã€‚フラグã«
CANON_EQã‚’è¨å®šã™ã‚‹ã¨ã€ãƒ¡ãƒ¢ãƒªãƒ¼ä¸è¶³ã®ä¸ç¨‹åº¦ã®ãƒªã‚¹ã‚¯ãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚- 実装上ã®ãƒŽãƒ¼ãƒˆ:
CANON_EQãŒæŒ‡å®šã•れã€ä»»æ„ã®æ–‡å—ã®çµåˆãƒžãƒ¼ã‚¯ã®æ•°ãŒå¤§ãã™ãŽã‚‹å ´åˆã€OutOfMemoryErrorãŒã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚- パラメータ:
regex- コンパイルã•れる表ç¾flags- マッãƒãƒ»ãƒ•ラグ。CASE_INSENSITIVEã€MULTILINEã€DOTALLã€UNICODE_CASEã€CANON_EQ,UNIX_LINESã€LITERALã€UNICODE_CHARACTER_CLASSã€ãŠã‚ˆã³COMMENTSã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãるビット・マスク- 戻り値:
- 指定ã•れãŸãƒ•ラグを使用ã—ã¦ã€ãƒ‘ターンã«ã‚³ãƒ³ãƒ‘イルã™ã‚‹æŒ‡å®šã•ã‚ŒãŸæ£è¦è¡¨ç¾
- スãƒãƒ¼:
IllegalArgumentException- 定義ã•れãŸä¸€è‡´ãƒ•ラグã«å¯¾å¿œã™ã‚‹ãƒ“ット値以外ã®ãƒ“ット値ãŒflagsã«è¨å®šã•れã¦ã„ã‚‹å ´åˆPatternSyntaxException- 表ç¾ã®æ§‹æ–‡ãŒç„¡åйã§ã‚ã‚‹å ´åˆ
-
pattern
public String pattern()ã“ã®ãƒ‘ターンã®ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«å…ƒã®æ£è¦è¡¨ç¾ã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ‘ターンã®ã‚³ãƒ³ãƒ‘イル元
-
toString
-
matcher
public Matcher matcher(CharSequence input) 指定ã•れãŸå…¥åŠ›ã¨ã“ã®ãƒ‘ターンをマッãƒã™ã‚‹ãƒžãƒƒãƒãƒ£ã‚’作æˆã—ã¾ã™ã€‚- 実装上ã®ãƒŽãƒ¼ãƒˆ:
PatternãŒç›´åˆ—化復元ã•れるã¨ã€ã‚³ãƒ³ãƒ‘イルã¯ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®ç›´æŽ¥ã¾ãŸã¯é–“接的ãªèµ·å‹•ã¾ã§é…å»¶ã•れã¾ã™ã€‚ ã—ãŸãŒã£ã¦ã€ç›´åˆ—化復元ã•れãŸãƒ‘ターンã®ãƒ•ラグã®é–“ã«CANON_EQãŒã‚りã€ä»»æ„ã®æ–‡å—ã®çµåˆãƒžãƒ¼ã‚¯ã®æ•°ãŒå¤§ãã™ãŽã‚‹å ´åˆã€compile(String, int)ã®ã‚ˆã†ã«OutOfMemoryErrorãŒã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚- パラメータ:
input- マッãƒã•れる文å—シーケンス- 戻り値:
- ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ã®æ–°ã—ã„マッãƒãƒ£
-
flags
public int flags()ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒãƒ»ãƒ•ラグを返ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ‘ターンãŒã‚³ãƒ³ãƒ‘イルã•れãŸã¨ãã«æŒ‡å®šã•れãŸãƒžãƒƒãƒãƒ»ãƒ•ラグ
-
matches
public static boolean matches(String regex, CharSequence input) 指定ã•ã‚ŒãŸæ£è¦è¡¨ç¾ã‚’コンパイルã—ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã¨ãã®æ£è¦è¡¨ç¾ã‚’マッãƒã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’次ã®å½¢å¼ã§å‘¼ã³å‡ºã™ã¨ã€ä¸Šè¨˜ã®å‹•作ãŒè¡Œã‚れã¾ã™ã€‚
上記ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æ¬¡ã®è¡¨ç¾ã¨åŒæ§˜ã«å‹•作ã—ã¾ã™ã€‚Pattern.matches(regex, input);
Pattern.compile(regex).matcher(input).matches()
パターンを繰返ã—使用ã™ã‚‹å ´åˆã¯ã€ãã®ãƒ‘ターンをコンパイルã—ã¦å†åˆ©ç”¨ã—ãŸæ–¹ãŒã€æ¯Žå›žã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™ã‚ˆã‚Šã‚‚効率的ã§ã™ã€‚
- パラメータ:
regex- コンパイルã•れる表ç¾input- マッãƒã•れる文å—シーケンス- 戻り値:
- å…¥åŠ›ã§æ£è¦è¡¨ç¾ãŒãƒžãƒƒãƒã—ã¦ã„ã‚‹ã‹ã©ã†ã‹
- スãƒãƒ¼:
PatternSyntaxException- 表ç¾ã®æ§‹æ–‡ãŒç„¡åйã§ã‚ã‚‹å ´åˆ
-
split
public String[] split(CharSequence input, int limit) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’åˆ†å‰²ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰è¿”ã•れるé…列ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®éƒ¨åˆ†æ–‡å—åˆ—ã§æ§‹æˆã•れã¾ã™ã€‚ã“れらã®éƒ¨åˆ†æ–‡å—列ã¯ã€ã“ã®ãƒ‘ターンã¨ãƒžãƒƒãƒã™ã‚‹åˆ¥ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ã‚ˆã£ã¦åˆ†å‰²ã•ã‚ŒãŸæ–‡å—列ã‹ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®çµ‚了ã«ã‚ˆã£ã¦åˆ†å‰²ã•ã‚ŒãŸæ–‡å—列ã§ã™ã€‚ é…列内ã®éƒ¨åˆ†æ–‡å—列ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹å†…ã§ç™ºç”Ÿã—ãŸé †ç•ªã«ä¸¦ã‚“ã§ã„ã¾ã™ã€‚ ã“ã®ãƒ‘ターンãŒå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ãƒžãƒƒãƒã—ãªã„å ´åˆã€çµæžœã¨ã—ã¦å¾—られるé…列㯠1 ã¤ã®è¦ç´ ã€ã¤ã¾ã‚Šæ–‡å—列形å¼ã®å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã ã‘ã§æ§‹æˆã•れã¾ã™ã€‚
入力シーケンスã®å…ˆé ã«ã€æ£ã®å¹…ã®ãƒžãƒƒãƒãŒã‚ã‚‹å ´åˆã€çµæžœã®é…列ã®å…ˆé ã«ã€ç©ºã®å…ˆé 部分文å—列ãŒå«ã¾ã‚Œã¾ã™ã€‚ å…ˆé ã®ã‚¼ãƒã®å¹…ã®ä¸€è‡´ã§ã¯ã€ãã®ã‚ˆã†ãªç©ºã®å…ˆé ã®éƒ¨åˆ†æ–‡å—列ã¯ç”Ÿæˆã•れã¾ã›ã‚“。
limitパラメータã¯ã€ã“ã®ãƒ‘ターンã®é©ç”¨å›žæ•°ã‚’制御ã™ã‚‹ãŸã‚ã€çµæžœã¨ãªã‚‹é…列ã®é•·ã•ã«å½±éŸ¿ã‚’åŠã¼ã—ã¾ã™ã€‚limitãŒæ£ã®å ´åˆã€ãƒ‘ã‚¿ãƒ¼ãƒ³ã¯æœ€å¤§limit-1回é©ç”¨ã•れã€é…列ã®é•·ã•ãŒlimitã‚’è¶…ãˆã‚‹ã“ã¨ã¯ãªãã€æœ€å¾Œã«ä¸€è‡´ã—ãŸãƒ‡ãƒªãƒŸã‚¿ã‚’è¶…ãˆã‚‹ã™ã¹ã¦ã®å…¥åŠ›ãŒé…åˆ—ã®æœ€å¾Œã®ã‚¨ãƒ³ãƒˆãƒªã«å«ã¾ã‚Œã¾ã™ã€‚
limitãŒã‚¼ãƒã®å ´åˆã€ãƒ‘ターンã¯å¯èƒ½ãªã‹ãŽã‚Šä½•度もé©ç”¨ã•れã€é…列ã«ã¯ä»»æ„ã®é•·ã•を指定ã§ãã€å¾Œç¶šã®ç©ºã®æ–‡å—列ã¯ç ´æ£„ã•れã¾ã™ã€‚
limitãŒè² ã®å ´åˆã€ãƒ‘ターンã¯å¯èƒ½ãªã‹ãŽã‚Šé©ç”¨ã•れã€é…列ã®é•·ã•ã¯ä»»æ„ã«ãªã‚Šã¾ã™ã€‚
ãŸã¨ãˆã°ã€å…¥åŠ›
"boo:and:foo"ã¯ã€æ¬¡ã®ãƒ‘ラメータを使用ã—ã¦çµæžœã‚’生æˆã—ã¾ã™:æ£è¦è¡¨ç¾ åˆ¶é™ Result : 2 { "boo", "and:foo" }5 { "boo", "and", "foo" }-2 { "boo", "and", "foo" }o 5 { "b", "", ":and:f", "", "" }-2 { "b", "", ":and:f", "", "" }0 { "b", "", ":and:f" }- パラメータ:
input- 分割ã•れる文å—シーケンスlimit- çµæžœã®ã—ãã„値(上記ã®ã¨ãŠã‚Š)- 戻り値:
- ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã®ä¸¡ç«¯ã§å…¥åŠ›ã‚’åˆ†å‰²ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦è¨ˆç®—ã•ã‚ŒãŸæ–‡å—列ã®é…列
-
splitWithDelimiters
public String[] splitWithDelimiters(CharSequence input, int limit) ã“ã®ãƒ‘ターンã®ä¸€è‡´ã‚’囲む入力シーケンスを分割ã—ã€æ–‡å—列ã¨ä¸€è‡´ã™ã‚‹ãƒ‡ãƒªãƒŸã‚¿ã®ä¸¡æ–¹ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰è¿”ã•れるé…列ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®éƒ¨åˆ†æ–‡å—åˆ—ã§æ§‹æˆã•れã¾ã™ã€‚ã“れらã®éƒ¨åˆ†æ–‡å—列ã¯ã€ã“ã®ãƒ‘ターンã¨ãƒžãƒƒãƒã™ã‚‹åˆ¥ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ã‚ˆã£ã¦åˆ†å‰²ã•ã‚ŒãŸæ–‡å—列ã‹ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®çµ‚了ã«ã‚ˆã£ã¦åˆ†å‰²ã•ã‚ŒãŸæ–‡å—列ã§ã™ã€‚ å„部分文å—列ã®ç›´å¾Œã«ã€ã“ã®ãƒ‘ターンã«ä¸€è‡´ã™ã‚‹éƒ¨åˆ†åˆ—(デリミタ)ãŒç¶šãã€æœ€å¾Œã®éƒ¨åˆ†æ–‡å—列を「除ãã€ã€ãã®å¾Œã«ä½•ã‚‚ç¶šã„ã¦ã„ã¾ã›ã‚“。 é…列内ã®éƒ¨åˆ†æ–‡å—列ã¨åŒºåˆ‡ã‚Šæ–‡å—ã¯ã€å…¥åŠ›ã§ã®å‡ºç¾é †åºã«ãªã‚Šã¾ã™ã€‚ ã“ã®ãƒ‘ターンãŒå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ãƒžãƒƒãƒã—ãªã„å ´åˆã€çµæžœã¨ã—ã¦å¾—られるé…列㯠1 ã¤ã®è¦ç´ ã€ã¤ã¾ã‚Šæ–‡å—列形å¼ã®å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã ã‘ã§æ§‹æˆã•れã¾ã™ã€‚
入力シーケンスã®å…ˆé ã«ã€æ£ã®å¹…ã®ãƒžãƒƒãƒãŒã‚ã‚‹å ´åˆã€çµæžœã®é…列ã®å…ˆé ã«ã€ç©ºã®å…ˆé 部分文å—列ãŒå«ã¾ã‚Œã¾ã™ã€‚ 最åˆã«ã‚¼ãƒå¹…ãŒä¸€è‡´ã—ã¦ã‚‚ã€ãã®ã‚ˆã†ãªç©ºã®å…ˆé 部分文å—列や空ã®åŒºåˆ‡ã‚Šæ–‡å—ã¯ç”Ÿæˆã•れã¾ã›ã‚“。
limitパラメータã¯ã€ã“ã®ãƒ‘ターンã®é©ç”¨å›žæ•°ã‚’制御ã™ã‚‹ãŸã‚ã€çµæžœã¨ãªã‚‹é…列ã®é•·ã•ã«å½±éŸ¿ã‚’åŠã¼ã—ã¾ã™ã€‚- limitãŒæ£ã®å ´åˆã€ãƒ‘ã‚¿ãƒ¼ãƒ³ã¯æœ€å¤§limit - 1回é©ç”¨ã•れã€é…列ã®é•·ã•ã¯2×limit - 1よりも大ãããªã‚‰ãšã€é…åˆ—ã®æœ€å¾Œã®ã‚¨ãƒ³ãƒˆãƒªã«ã¯ã€æœ€å¾Œã«ä¸€è‡´ã—ãŸãƒ‡ãƒªãƒŸã‚¿ã‚’è¶…ãˆã‚‹ã™ã¹ã¦ã®å…¥åŠ›ãŒå«ã¾ã‚Œã¾ã™ã€‚
- limitãŒã‚¼ãƒã®å ´åˆã€ãƒ‘ターンã¯å¯èƒ½ãªã‹ãŽã‚Šä½•度もé©ç”¨ã•れã€é…列ã«ã¯ä»»æ„ã®é•·ã•を指定ã§ãã€å¾Œç¶šã®ç©ºã®æ–‡å—列(部分文å—列ã¾ãŸã¯ãƒ‡ãƒªãƒŸã‚¿)ã¯ç ´æ£„ã•れã¾ã™ã€‚
- limitãŒè² ã®å ´åˆã€ãƒ‘ターンã¯å¯èƒ½ãªã‹ãŽã‚Šé©ç”¨ã•れã€é…列ã®é•·ã•ã¯ä»»æ„ã«ãªã‚Šã¾ã™ã€‚
ãŸã¨ãˆã°ã€å…¥åŠ›
"boo:::and::foo"ã¯ã€æ¬¡ã®ãƒ‘ラメータを使用ã—ã¦çµæžœã‚’生æˆã—ã¾ã™:æ£è¦è¡¨ç¾ åˆ¶é™ Result :+ 2 { "boo", ":::", "and::foo" }5 { "boo", ":::", "and", "::", "foo" }-1 { "boo", ":::", "and", "::", "foo" }o 5 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }-1 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }0 { "b", "o", "", "o", ":::and::f", "o", "", "o" }- パラメータ:
input- 分割ã•れる文å—シーケンスlimit- çµæžœã®ã—ãã„値(上記ã®ã¨ãŠã‚Š)- 戻り値:
- ã“ã®ãƒ‘ターンã®ä¸€è‡´ã®å‰å¾Œã«å…¥åŠ›ã‚’åˆ†å‰²ã—ã¦è¨ˆç®—ã•れる文å—列ã®é…列ã€ç½®æ›éƒ¨åˆ†æ–‡å—列ãŠã‚ˆã³ä¸€è‡´ã™ã‚‹åŒºåˆ‡ã‚Šæ–‡å—
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 21
-
split
public String[] split(CharSequence input) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’åˆ†å‰²ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å‹•作ã¯ã€2ã¤ã®å¼•æ•°ã‚’å–ã‚‹
splitãƒ¡ã‚½ãƒƒãƒ‰ã‚’ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ã‚¼ãƒã®åˆ¶é™å¼•数を指定ã—ã¦å‘¼ã³å‡ºã—ãŸå ´åˆã¨åŒã˜ã«ãªã‚Šã¾ã™ã€‚ ã¤ã¾ã‚Šã€çµæžœã¨ã—ã¦å¾—られるé…列ã«ã¯å¾Œç¶šã®ç©ºã®æ–‡å—列ã¯å«ã¾ã‚Œã¾ã›ã‚“。ãŸã¨ãˆã°ã€å…¥åŠ›
"boo:and:foo"ã¯ã€æ¬¡ã®å¼ã§æ¬¡ã®çµæžœã‚’生æˆã—ã¾ã™:æ£è¦è¡¨ç¾ Result : { "boo", "and", "foo" }o { "b", "", ":and:f" }- パラメータ:
input- 分割ã•れる文å—シーケンス- 戻り値:
- ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã®ä¸¡ç«¯ã§å…¥åŠ›ã‚’åˆ†å‰²ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦è¨ˆç®—ã•ã‚ŒãŸæ–‡å—列ã®é…列
-
quote
指定ã•れãŸStringã®ãƒªãƒ†ãƒ©ãƒ«ãƒ»ãƒ‘ターンStringã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒªãƒ†ãƒ©ãƒ«ãƒ»ãƒ‘ターンã§ã‚ã‚‹ã‹ã®ã‚ˆã†ã«æ–‡å—列
入力シーケンス内ã®ãƒ¡ã‚¿ã‚ャラクタã¾ãŸã¯ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—・シーケンスã«ã€ç‰¹åˆ¥ãªæ„味ã¯ã‚りã¾ã›ã‚“。sã«ãƒžãƒƒãƒã™ã‚‹Patternã®ä½œæˆã«ä½¿ç”¨å¯èƒ½ãªStringを生æˆã—ã¾ã™ã€‚- パラメータ:
s- リテラル化ã™ã‚‹æ–‡å—列- 戻り値:
- リテラル文å—列置æ›
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.5
-
namedGroups
ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—åã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—番å·ã¸ã®å¤‰æ›´ä¸å¯èƒ½ãªãƒžãƒƒãƒ—ã‚’è¿”ã—ã¾ã™ã€‚ åå‰ä»˜ãグループãŒãªã„å ´åˆã¯ã€ç©ºã®ãƒžãƒƒãƒ—ã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã‚ャプãƒãƒ£ãƒªãƒ³ã‚°ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—åã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—番å·ã¸ã®å¤‰æ›´ä¸å¯èƒ½ãªãƒžãƒƒãƒ—
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 20
-
asPredicate
指定ã•れãŸå…¥åŠ›æ–‡å—列ã§ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ãŒæ¤œå‡ºã•れãŸã‹ã©ã†ã‹ã‚’テストã™ã‚‹è¿°èªžã‚’作æˆã—ã¾ã™ã€‚- APIã®ãƒŽãƒ¼ãƒˆ:
- ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‹ã‚‰ãƒžãƒƒãƒãƒ£ã‚’作æˆã—ãŸå ´åˆã®ã‚ˆã†ã«å‹•作ã™ã‚‹è¿°èªžã‚’作æˆã—ã€æ¬¡ã®ã‚ˆã†ãªãƒ•ォームã®è¿°èªžã®ã‚ˆã†ã«
findを呼ã³å‡ºã—ã¾ã™ã€‚s -> matcher(s).find(); - 戻り値:
- æ–‡å—列ã®ã‚µãƒ–・シーケンスã®ä¸€è‡´ã‚’検索ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã§ãる述語。
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.8
- é–¢é€£é …ç›®:
-
asMatchPredicate
ã“ã®ãƒ‘ã‚¿ãƒ¼ãƒ³ãŒæŒ‡å®šã•れãŸå…¥åŠ›æ–‡å—列ã¨ä¸€è‡´ã™ã‚‹ã‹ã©ã†ã‹ã‚’テストã™ã‚‹è¿°èªžã‚’作æˆã—ã¾ã™ã€‚- APIã®ãƒŽãƒ¼ãƒˆ:
- ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‹ã‚‰ãƒžãƒƒãƒãƒ£ã‚’作æˆã—ãŸå ´åˆã®ã‚ˆã†ã«å‹•作ã™ã‚‹è¿°èªžã‚’作æˆã—ã€æ¬¡ã®ã‚ˆã†ãªãƒ•ォームã®è¿°èªžã®ã‚ˆã†ã«
matchesを呼ã³å‡ºã—ã¾ã™ã€‚s -> matcher(s).matches(); - 戻り値:
- 入力文å—列をã“ã®ãƒ‘ターンã¨ç…§åˆã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã§ãる述語。
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 11
- é–¢é€£é …ç›®:
-
splitAsStream
public Stream<String> splitAsStream(CharSequence input) ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã«åŸºã¥ã„ã¦ã€æŒ‡å®šã•れãŸå…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‹ã‚‰ã‚¹ãƒˆãƒªãƒ¼ãƒ を作æˆã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰è¿”ã•れるストリームã¯ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®å„部分文å—åˆ—ã§æ§‹æˆã•れã¾ã™ã€‚ã“れらã®éƒ¨åˆ†æ–‡å—列ã¯ã€ã“ã®ãƒ‘ターンã¨ãƒžãƒƒãƒã™ã‚‹åˆ¥ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ã‚ˆã£ã¦çµ‚了ã—ãŸæ–‡å—列ã‹ã€å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®æœ«å°¾ã«ã‚ˆã£ã¦çµ‚了ã—ãŸæ–‡å—列ã§ã™ã€‚ ストリーム内ã®éƒ¨åˆ†æ–‡å—列ã¯ã€å…¥åЛ内ã§ç™ºç”Ÿã—ãŸé †ç•ªã«ä¸¦ã‚“ã§ã„ã¾ã™ã€‚ 末尾ã®ç©ºã®æ–‡å—列ã¯ç ´æ£„ã•れã€ã‚¹ãƒˆãƒªãƒ¼ãƒ å†…ã§æ¤œå‡ºã•れã¾ã›ã‚“。
ã“ã®ãƒ‘ターンãŒå…¥åŠ›ã®éƒ¨åˆ†ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ãƒžãƒƒãƒã—ãªã„å ´åˆã€çµæžœã¨ã—ã¦å¾—られるストリーム㯠1 ã¤ã®è¦ç´ ã€ã¤ã¾ã‚Šæ–‡å—列形å¼ã®å…¥åŠ›ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã ã‘ã§æ§‹æˆã•れã¾ã™ã€‚
入力シーケンスã®å…ˆé ã«ã€æ£ã®å¹…ã®ãƒžãƒƒãƒãŒã‚ã‚‹å ´åˆã€ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®å…ˆé ã«ã€ç©ºã®å…ˆé 部分文å—列ãŒå«ã¾ã‚Œã¾ã™ã€‚ å…ˆé ã®ã‚¼ãƒã®å¹…ã®ä¸€è‡´ã§ã¯ã€ãã®ã‚ˆã†ãªç©ºã®å…ˆé ã®éƒ¨åˆ†æ–‡å—列ã¯ç”Ÿæˆã•れã¾ã›ã‚“。
入力シーケンスãŒå¯å¤‰ã§ã‚ã‚‹å ´åˆã€ç«¯æœ«ã®ã‚¹ãƒˆãƒªãƒ¼ãƒ æ“作ã®å®Ÿè¡Œæ™‚ã«ä¸€å®šã«ä¿ãŸã‚Œã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ ãã†ã—ãªã„å ´åˆã€ã‚¹ãƒˆãƒªãƒ¼ãƒ 終端æ“作ã®çµæžœã¯ä¿è¨¼ã•れã¾ã›ã‚“。
- パラメータ:
input- 分割ã•れる文å—シーケンス- 戻り値:
- ã“ã®ãƒ‘ターンã®ãƒžãƒƒãƒã®ä¸¡ç«¯ã§å…¥åŠ›ã‚’åˆ†å‰²ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦è¨ˆç®—ã•ã‚ŒãŸæ–‡å—列ã®ã‚¹ãƒˆãƒªãƒ¼ãƒ
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 1.8
- é–¢é€£é …ç›®:
-