Javaでは、デフォルトで正規表現(正規表現)のマッチングは大文字と小文字を区別します。正規表現の大文字と小文字を区別しないマッチングを有効にするには、 `(?)`接頭辞を追加するか、大文字と小文字を区別しないフラグを `Pattern.compile()`で直接有効にします。
正規表現パターンの例
Pattern = Registrar:\\s(.** )
大文字と小文字を区別しないで `(?)`プレフィックスを付け加えます。
Pattern = (?)Registrar:\\s(.** )
大文字小文字を区別しない場合は、Pattern.CASE__INSENSITIVEフラグを追加します。
Pattern.compile("Registrar:\\s(.** )", Pattern.CASE__INSENSITIVE);
1. RegExの例
正規表現の大文字と小文字を区別しない一致を使用して「レジストラ」情報を取得する例
package com.mkyong.regex import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RunExampleTest{ private Pattern registrarPattern = Pattern.compile(REGISTRAR__PATTERN); //alternative /** private Pattern registrarPattern = Pattern.compile(REGISTRAR__PATTERN, Pattern.CASE__INSENSITIVE);** / private Matcher matcher; private static final String REGISTRAR__PATTERN = "(?)Registrar:\\s(.** )"; public static void main(String[]args) { String data = "Testing... \n" + "Registrar: abc.whois.com\n" + "registrar: 123.whois.com\n" + "end testing"; RunExampleTest obj = new RunExampleTest(); List<String> list = obj.getRegistrar(data); System.out.println(list); } private List<String> getRegistrar(String data){ List<String> result = new ArrayList<String>(); matcher = registrarPattern.matcher(data); while (matcher.find()) { result.add(matcher.group(1)); } return result; } }
出力
….[abc.whois.com, 123.whois.com]….
参考文献
-
http://en.wikipedia.org/wiki/Case__sensitivity
[ウィキペディア:Case
感度]。
http://en.wikipedia.org/wiki/Regular__expression
[Wikipedia:Regular
式/]