Ruby/Wyrażenia regularne: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
zamiana ProstaNawigacja->Subst:Naw
Derbeth (dyskusja | edycje)
m html -> wiki
Linia 5:
Oto pewne znaki i kombinacje znaków które mają specjalne znaczenie w tych wzorcach:
 
<table{| class="wikitable">
<th>! Kombinacja</th> !! Opis
<tr>
|-
<th>Kombinacja</th>
<td>| <tt>[]</tt></td><td> || specyfikacja zakresu (np., [a-z] oznacza litery od ''a'' do ''z'')</td>
<th>Opis</th>
|-
</tr><tr>
| <tt>\w</tt> || litera lub cyfra; to samo co [0-9A-Za-z]
<td><tt>[]</tt></td><td>specyfikacja zakresu (np., [a-z] oznacza litery od ''a'' do ''z'')</td>
|-
</tr><tr>
<td>| <tt>\wW</tt></td><td>litera lub|| cyfra;ani tolitera samoani co [0-9A-Za-z]</td>cyfra
|-
</tr><tr>
| <tt>\s</tt> || biały znak; to samo co [ \t\n\r\f]
<td><tt>\W</tt></td><td>ani litera ani cyfra</td>
|-
</tr><tr>
<td>| <tt>\sS</tt></td><td>biały znak;|| tonie samobiały co [ \t\n\r\f]</td>znak
|-
</tr><tr>
<td>| <tt>\Sd</tt></td><td>nie biały|| znak</td> cyfra; to samo co [0-9]
|-
</tr><tr>
<td>| <tt>\dD</tt></td><td>znak cyfra;|| toznak samonie cobędący [0-9]</td>cyfrą
|-
</tr><tr>
<td>| <tt>\b</tt></td><td>granica słowa|| backspace (0x08) (tylko jeśli nie występuje w specyfikacji zakresu)</td>
<td><tt>\D</tt></td><td>znak nie będący cyfrą</td>
|-
</tr><tr>
<td>| <tt>\b</tt></td><td>backspace (0x08)|| granica (tylkosłowa (jeśli nie występuje w specyfikacji zakresu)</td>
|-
</tr><tr>
<td>| <tt>\B</tt></td><td> || granica nie słowa</td>
<td><tt>\b</tt></td><td>granica słowa (jeśli nie występuje w specyfikacji zakresu)</td>
|-
</tr><tr>
<td>| <tt>|*</tt></td><td>albo || treść stojąca przed tym symbolem albomoże następnepowtórzyć wyrażeniesię muszązero pasować</td>lub więcej razy
<td><tt>\B</tt></td><td>granica nie słowa</td>
|-
</tr><tr>
<td>| <tt>*+</tt></td><td> || treść stojąca przed tym symbolem możemusi powtórzyć się zerojeden lub więcej razy</td>
|-
</tr><tr>
<td>| <tt>+{m,n}</tt></td><td> || treść stojąca przed tym symbolem musi powtórzyć się jedenod lub''m'' więcejdo ''n'' razy</td>
|-
</tr><tr>
<td>| <tt>{m,n}?</tt></td><td> || treść stojąca przed tym symbolem musimoże powtórzyćwystąpić sięnajwyżej odjeden ''m''raz; doto ''n''samo razy</td>co {0,1}
|-
</tr><tr>
<td>| <tt>?|</tt></td><td> || albo treść stojąca przed tym symbolem możealbo wystąpićnastępne najwyżejwyrażenie jedenmuszą raz; to samo co {0,1}</td>pasować
|-
</tr><tr>
| <tt>()</tt> || grupowanie
<td><tt>|</tt></td><td>albo treść stojąca przed tym symbolem albo następne wyrażenie muszą pasować</td>
|-
</tr><tr>
<td>| <tt>()^</tt></td><td>grupowanie</td> || początek wiersza
|-
</tr><tr>
<td>| <tt>^$</tt></td><td>początek || koniec wiersza</td>
}|}
</tr><tr>
<td><tt>$</tt></td><td>koniec wiersza</td>
</tr>
</table>
 
Wspólny termin określający wzory, które używają tych dziwnych symboli, to ''[[w:wyrażenia regularne|wyrażenia regularne]]''. W Rubim tak samo jak w Perlu bierze się je raczej w ukośniki (<tt>/</tt>) niż w cudzysłowy. Jeżeli nigdy wcześniej nie pracowałeś z wyrażeniami regularnymi, prawdopodobnie nie wyglądają one zbyt regularnie, ale naprawdę warto poświęcić trochę czasu by się z nimi zaznajomić. Wyrażenia regularne są skuteczne i ekspresywne. Oszczędzi ci to bólów głowy (i wielu linii kodu) niezależnie od tego, czy potrzebujesz dopasowywania wzorców, wyszukiwania czy też innego manipulowania łańcuchami.
Linia 140 ⟶ 137:
puts "aaaaaa" =~ /d/ #=> nil
</source>
 
<noinclude>
<noinclude>{{Nawigacja|Ruby|
[[Ruby/Łańcuchy znakowe|Łańcuchy znakowe]]|
[[Ruby/Tablice|Tablice]]|
}}</noinclude>
}}
</noinclude>