Что такое регулярное выражение
Регулярные выражения - это спецификации, которые можно использовать для сопоставления и замены рисунков. Регулярное выражение - это буквальный шаблон, состоящий из обычных символов (таких как символы от A до z) и специальных символов (Metacharacters). Он используется для описания одной или нескольких струн, которые будут сопоставлены при поиске тела буквального. Регулярное выражение действует как шаблон в соответствии с шаблоном символа с поисковой строкой.
Java использует регулярные выражения для извлечения данных
Регулярные выражения Java очень полезны. Раньше они разделили большой 3 -метровый текст TXT на несколько небольших текстов. Слова, написанные в C#, очень краткие, а код составляет всего около двадцати строк. Я написал их в Java сегодня. Конечно же, Java очень многословна.
Я не буду публиковать код, чтобы разделить файл. Я в основном опубликую, как использовать регулярные выражения для группировки больших струн:
Например, теперь существует текстовый файл endlist.txt со следующим контентом:
1300102, Пекин 1300103, Пекин 1300104, Пекин 1300105, Пекин 1300106, Пекин 1300107, Пекин 1300108, Пекин 1300109, Пекин 1300110, Пекинг 1300111, Пекинг 1300112, Beijing 1300113, Beijing 130014, Beijr114, Beij114, Beijing 130014. 1300115, Пекин 1300116, Пекин 1300117, Пекин 1300118, Пекин 1300119, Пекин
Семьюзначный номер представляет собой первые семь цифр номера мобильного телефона, а китайские иероглифы, стоящие за ним, указывают на место собственности номера. Теперь я хочу написать это содержимое в эти файлы как 130 131 132 ... соответственно.txt 131.txt 132.txt .......
public static void main (string args []) {file file = null; BufferedReader Br = null; Stringbuffer buffer = null; String childpath = "src/endlist.txt"; String Data = ""; try {file = new File (kildpath); buffer = new StringBuffer (); InputStreamReader ISR = новый InputStreamReader (New FileInputStream (File), "UTF-8"); br = new BufferedReader (ISR); int s; while ((s = br.read ())! = -1) {buffer.append ((char) s); } data = buffer.toString (); } catch (Exception e) {e.printstackTrace (); } Map <string, arraylist <string >> resultMap = new HashMap <String, arrayList <string >> (); for (int i = 0; i <10; i ++) {resultmap.put ("13"+i, новый ArrayList <string> ()); } Pattern pattern = pattern.compile ("(// d {3}) (// d {4}, [/u4e00-/u9fa5]*// n)"); Matcher Matcher = pattern.matcher (data); while (matcher.find ()) {resultmap.get (matcher.group (1)). add (matchter.group (2)); } for (int i = 0; i <10; i ++) {if (resultmap.get ("13" + i) .size ()> 0) {try {file outfile = new File ("src/13" + i + ".txt"); FileOutputStream outputStream = new FileOutputStream (OutFile); Outputstreamwriter writer = new outputstreamwriter (outputstream, "utf-8"); Arraylist <string> templist = resultmap.get ("13" + i); for (int j = 0; j <templist.size (); j ++) {writer.append (resultmap.get ("13"+i) .get (j)); } writer.close (); outputStream.close (); } catch (Exception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}}}Строка 24 использует обычное выражение "(// d {3}) (// d {4}, [/u4e00-/u9fa5]*// n)" Содержание в каждом () группа, индекс начинается с 1, а 0 представляет все выражение. Следовательно, это выражение разделено на две группы. Первая группа представляет 3 числа, а вторая группа представляет 4 номера плюс несколько китайских иероглифс и персонажей Newline. Извлечение показано в строках 26-28.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи поможет вашему обучению или работе. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.