JavaRush /Java Blog /Random-TL /Mga Backlink sa Java Regular Expressions
eGarmin
Antas

Mga Backlink sa Java Regular Expressions

Nai-publish sa grupo
Ang mga backreference sa mga regular na expression ng Java ay isang napaka-kapaki-pakinabang na tampok na sinusuportahan ng Java engine . Upang maunawaan kung ano ang mga backlink, kailangan mo munang matutunang maunawaan kung ano ang isang grupo . Tinatrato ng pangkat sa mga regular na expression ang maraming character bilang isang unit. Ang mga pangkat ay nilikha sa pamamagitan ng paglalagay ng mga character sa panaklong – “()”. Ang isang pares ng panaklong ay isang pangkat. Maginhawa ang mga backlink dahil maaari naming ulitin ang mga pattern ng paghahanap nang hindi direktang kinokopya ang mga ito. Kailangan lang nating sumangguni sa isang dating tinukoy na grupo gamit ang isang construction tulad ng \N , kung saan ang N ay ang numero ng pangkat. Ang sumusunod na 2 halimbawa ay nagbibigay sa iyo ng pakiramdam para sa kaginhawahan ng mga backlink.
Halimbawa 1: Paghahanap ng Paulit-ulit na Pattern
Ang isang pagbuo ng form (\d\d\d)\1 ay tumutugma sa linya 123123, ngunit hindi sa linya 123456. String str = "ля123123ля"; Pattern p = Pattern.compile("(\\d\\d\\d)\\1"); Matcher m = p.matcher(str); System.out.println(m.groupCount()); while (m.find()) { String word = m.group(); System.out.println(word + " " + m.start() + " " + m.end()); } Output: 1 123123 2 8 Tala ng Tagasalin! Dito, bilang isang tagasalin, gusto kong kumuha ng kaunting kalayaan at magsingit ng mga komento mula sa aking sarili, dahil Ako mismo ay nag-aaral tungkol sa mga regular na expression at umaasa ako na itatama nila ako sa pamamagitan ng mga pagmumura :) kung ang isinulat ko sa ibaba ay isang error: 1) Ang groupCount () method Ibinabalik ang bilang ng mga pangkat na tinukoy sa pattern, kaya kahit na kung ang input string ay "la123" 456 la", na hindi akma sa template, ang numero 1 ay ipapakita pa rin sa screen. 2) Ang find() method Naghahanap para sa susunod na grupo, ngunit nagbabalik lamang ng boolean value : true – found, false – not found 3) group() Method Ibinabalik ang huling substring na natagpuan mula sa pattern. Sa kasong ito 123123 4) Ang start() method Ibinabalik ang posisyon ng nahanap na substring sa source string (numbering, siyempre, simula sa zero) 5) Ang end() method Ibinabalik ang posisyon sa source string kaagad kasunod ng nahanap substring. Kaya, ang value na ito ay hindi tumuturo sa huling character ng nahanap na substring sa source string, ngunit sa susunod na isa pagkatapos nito.
Halimbawa 2: Paghahanap ng mga dobleng salita
String pattern = "\\b(\\w+)\\b[\\w\\W]*\\b\\1\\b"; Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); String phrase = "unique is not duplicate but unique, Duplicate is duplicate."; Matcher m = p.matcher(phrase); while (m.find()) { String val = m.group(); System.out.println("Найденная последовательность символов: \"" + val + "\""); System.out.println("Слово-дубликат: " + m.group(1) + "\n"); } Konklusyon: Найденная последовательность символов: "unique is not duplicate but unique" Слово-дубликат: unique Найденная последовательность символов: "Duplicate is duplicate" Слово-дубликат: Duplicate Pakitandaan na ang paraan ng paghahanap ng mga duplicate na salita (gamit ang mga regular na expression) ay hindi pinakamainam. Halimbawa, sa halimbawa sa itaas, ang unang salitang "duplicate" ay nilaktawan.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION