正規表現キャプチャあれこれ
正規表現のキャプチャの利用例
「@+数字」を抜き出したい
String target = 'テスト@123テスト'
pattern myPattern = pattern.compile('@[0-9]');
matcher myMatcher = myPattern.matcher(target);
if (myMatcher.find()) {
System.debug(myMatcher.group());
}
/** Log
*
* @123
* /
「@+数字」を抜き出したい(一致が複数あり)
String target = 'テスト@123テスト'
pattern myPattern = pattern.compile('@[0-9]');
matcher myMatcher = myPattern.matcher(target);
if (myMatcher.find()) {
System.debug(myMatcher.group());
}
/** Log
*
* @123
* /
上記のifの部分をwhileループに変更
String target = 'テスト@123テスト@456'
pattern myPattern = pattern.compile('@[0-9]');
matcher myMatcher = myPattern.matcher(target);
Integer i = 1;
while (myMatcher.find()) {
System.debug(String.valueOf(i) + '番目: ' + myMatcher.group());
i++;
}
/** Log
*
* 1番目: @123
* 2番目: @456
* /
「@+数字」の数字部分を抜き出したい
groupの引数を設定
String target = 'テスト@123テスト456'
pattern myPattern = pattern.compile('@([0-9])');
matcher myMatcher = myPattern.matcher(target);
Integer i = 1;
while (myMatcher.find()) {
System.debug(String.valueOf(i) + '番目: ' + myMatcher.group(1));
i++;
}
/** Log
*
* 1番目: 123
*
* ※456は出力されない
* /
「@+数字+英語」の数字+英語と数字と英語部分をそれぞれ抜き出したい
上記の応用
groupの引数を諸々設定(引数なしと0の結果は同じ)
String target = 'テスト@123ABCテスト@456'
pattern myPattern = pattern.compile('@(([0-9])([A-Z]))');
matcher myMatcher = myPattern.matcher(target);
Integer i = 1;
while (myMatcher.find()) {
System.debug(String.valueOf(i) + '番目グループ空白該当 : ' + myMatcher.group());
System.debug(String.valueOf(i) + '番目グループ0該当 : ' + myMatcher.group(0));
System.debug(String.valueOf(i) + '番目グループ1該当 : ' + myMatcher.group(1));
System.debug(String.valueOf(i) + '番目グループ2該当 : ' + myMatcher.group(2));
System.debug(String.valueOf(i) + '番目グループ3該当 : ' + myMatcher.group(3));
i++;
}
/** Log
*
* 1番目グループ空白該当 : @123ABC
* 1番目グループ0該当 : @123ABC
* 1番目グループ1該当 : 123ABC
* 1番目グループ2該当 : 123
* 1番目グループ3該当 : ABC
*
* @456については出力されない
* /
Author And Source
この問題について(正規表現キャプチャあれこれ), 我々は、より多くの情報をここで見つけました https://qiita.com/ddddchi/items/6e29616290d7c632924f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .