import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((?:SFR)\\ ?\\d+|(?:[oO][rR])\\ ?\\d+|(?:[iI][pP][hH][oO][nN][eE])\\ ?\\d+|[\\dA-Z]{12}|\\d{2,})";
final String string = "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "iOS device\n"
+ "1\n"
+ "347\n"
+ "4804\n"
+ "SFR113\n"
+ "189\n"
+ "4429\n"
+ "4657\n"
+ "4666\n"
+ "4790\n"
+ "8\n"
+ "Or4177\n"
+ "Or4195\n"
+ "Sfr5\n"
+ "OR4314\n"
+ "01068\n"
+ "1140\n"
+ "21\n"
+ "228\n"
+ "229\n"
+ "253\n"
+ "40\n"
+ "421\n"
+ "4462\n"
+ "4509\n"
+ "4650\n"
+ "4670\n"
+ "4696\n"
+ "4705\n"
+ "4747\n"
+ "4748\n"
+ "4751\n"
+ "4754\n"
+ "4785\n"
+ "4818\n"
+ "55\n"
+ "880\n"
+ "93\n"
+ "OR 1613\n"
+ "OR4329\n"
+ "OR4437\n"
+ "OR4440\n"
+ "Or4180\n"
+ "Or4183\n"
+ "Or4186\n"
+ "Or4187\n"
+ "Or4188\n"
+ "Or4190\n"
+ "Or4191\n"
+ "Or4199\n"
+ "Or4204\n"
+ "Or4208\n"
+ "Or4311\n"
+ "Or716\n"
+ "Or888\n"
+ "Sfr2-2\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone 264\n"
+ "iPhone 335\n"
+ "F4LLKCCRFNDD\n"
+ "F78LD2SFFFHM\n"
+ "0707\n"
+ "1055\n"
+ "1122\n"
+ "1138\n"
+ "1142\n"
+ "122\n"
+ "155\n"
+ "183\n"
+ "191\n"
+ "2\n"
+ "207\n"
+ "242\n"
+ "29\n"
+ "296\n"
+ "417\n"
+ "4427\n"
+ "4431\n"
+ "4496\n"
+ "4503\n"
+ "4507\n"
+ "4523\n"
+ "4524\n"
+ "4525\n"
+ "4526\n"
+ "4529\n"
+ "4532\n"
+ "4542\n"
+ "4543\n"
+ "457\n"
+ "4645\n"
+ "4649\n"
+ "4651\n"
+ "4653\n"
+ "4659\n"
+ "4660\n"
+ "4661\n"
+ "4667\n"
+ "4675\n"
+ "4680\n"
+ "4685\n"
+ "4690\n"
+ "4700\n"
+ "4702\n"
+ "4703\n"
+ "4706\n"
+ "4708\n"
+ "4709\n"
+ "4712\n"
+ "4716\n"
+ "4717\n"
+ "4718\n"
+ "4719\n"
+ "4745\n"
+ "4750\n"
+ "4752\n"
+ "4756\n"
+ "4757\n"
+ "4758\n"
+ "4761\n"
+ "4772\n"
+ "4780\n"
+ "4783\n"
+ "4784\n"
+ "4786\n"
+ "4795\n"
+ "4806\n"
+ "4807\n"
+ "4812\n"
+ "4814\n"
+ "4816\n"
+ "6\n"
+ "688\n"
+ "69\n"
+ "8\n"
+ "812\n"
+ "OR 1842\n"
+ "OR4309\n"
+ "OR4315\n"
+ "OR4328\n"
+ "OR4595\n"
+ "OR4635\n"
+ "Or333i\n"
+ "Or4182\n"
+ "Or4198\n"
+ "Or4646\n"
+ "Sfr vtc\n"
+ "Sfr3-3\n"
+ "Unknown-Host\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone 1234\n"
+ "iPhone 261\n"
+ "iPhone 307\n"
+ "iPhone\n"
+ "1101\n"
+ "1257\n"
+ "128\n"
+ "226\n"
+ "254\n"
+ "279\n"
+ "4292\n"
+ "4430\n"
+ "4460\n"
+ "4463\n"
+ "4497\n"
+ "4499\n"
+ "4519\n"
+ "4522\n"
+ "4527\n"
+ "4533\n"
+ "4534\n"
+ "4537\n"
+ "4539\n"
+ "4553\n"
+ "4643\n"
+ "4647\n"
+ "4648\n"
+ "4652\n"
+ "4655\n"
+ "4658\n"
+ "4665\n"
+ "4671\n"
+ "4673\n"
+ "4674\n"
+ "4675\n"
+ "4677\n"
+ "4677\n"
+ "4683\n"
+ "4686\n"
+ "4689\n"
+ "4699\n"
+ "4753\n"
+ "4759\n"
+ "4763\n"
+ "4765\n"
+ "4767\n"
+ "4768\n"
+ "4769\n"
+ "4770\n"
+ "4773\n"
+ "4774\n"
+ "4775\n"
+ "4776\n"
+ "4777\n"
+ "4778\n"
+ "4779\n"
+ "4781\n"
+ "4782\n"
+ "4785\n"
+ "4785\n"
+ "4789\n"
+ "4791\n"
+ "4793\n"
+ "4794\n"
+ "4794\n"
+ "4796\n"
+ "4799\n"
+ "4801\n"
+ "4802\n"
+ "4803\n"
+ "4805\n"
+ "4808\n"
+ "4809\n"
+ "4810\n"
+ "4813\n"
+ "4815\n"
+ "4817\n"
+ "4819\n"
+ "4820\n"
+ "4821\n"
+ "7362\n"
+ "763\n"
+ "90\n"
+ "OR3871\n"
+ "OR3893\n"
+ "OR4100\n"
+ "OR4145\n"
+ "OR4220\n"
+ "OR4257\n"
+ "OR4261\n"
+ "OR4312\n"
+ "OR4357\n"
+ "OR4385\n"
+ "OR4399\n"
+ "OR4446\n"
+ "OR4447\n"
+ "OR4589\n"
+ "OR4618\n"
+ "OR4622\n"
+ "Or 4412\n"
+ "Or1262\n"
+ "Or1338\n"
+ "Or3927\n"
+ "Or4278\n"
+ "SFR1239\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone\n"
+ "iPhone #24\n"
+ "Or3600\n"
+ "0000\n"
+ "1010\n"
+ "1013\n"
+ "1102\n"
+ "1170\n"
+ "120\n"
+ "1203\n"
+ "1220\n"
+ "1233\n"
+ "131\n"
+ "14\n"
+ "162\n"
+ "1980\n"
+ "202\n"
+ "206\n"
+ "280\n"
+ "318\n"
+ "326\n"
+ "4465\n"
+ "4484\n"
+ "4495\n"
+ "4498\n"
+ "4500\n"
+ "4511\n"
+ "4531\n"
+ "4532\n"
+ "4535\n"
+ "4538\n"
+ "4541\n"
+ "4654\n"
+ "4687\n"
+ "4690\n"
+ "4691\n"
+ "4698\n"
+ "473\n"
+ "4739\n"
+ "4746\n"
+ "4755\n"
+ "4793\n"
+ "4800\n"
+ "4811\n"
+ "578\n"
+ "833\n"
+ "834\n"
+ "859\n"
+ "OR 1263\n"
+ "OR 1309\n"
+ "OR 1358\n"
+ "OR 1402\n"
+ "OR 1403\n"
+ "OR 1424\n"
+ "OR 1553\n"
+ "OR1754\n"
+ "OR1843\n"
+ "OR1862\n"
+ "OR2061";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html