![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 11.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam problem z wyrażeniem regularnym, za pomocą którego chciałbym nadać klasę np. w co 6tej komórce wiersza tabeli. Wzór mojego wyrażenia:
<tr>\s*(<td[^.]*?</td>\s*){5}<td([^.]*?</td>\s*)\s*</tr>\s* znajduje 5 komórek i 6tą do objęcia klasą. Dokonuję zamiany przy mocy wyrażenia: <tr>$1<td class="nazwa klasy"$2</tr>\n Problem polega na tym, że mój sposób usuwa z wiersza pierwsze 4 komórki. Zostaje tylko 5ta i 6ta-objęta klasą. Może jest na to jakaś rada? Przy małej ilości komórek w wierszu można stosować co prawda: <tr>\s*(<td[^.]*?</td>\s*)(<td[^.]*?</td>\s*)(<td[^.]*?</td>\s*)(<td[^.]*?</td>\s*)(<td[^.]*?</td>\s*)<td([^.]*?</td>\s*)\s*</tr>\s* i zamienić przez: <tr>$1$2$3$4$5<td class="nazwa klasy"$6</tr>\n ale przy większej ilości komórek będzie i z tym problem. Może ktoś... ? ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) ![]() ![]() |
Cześć
![]() Nie wiem czemu dałeś [^.] co oznaczałoby "wszystko oprócz dowolnego znaku". W praktyce pasuje tu tylko znak nowego wiersza. Twoje wyrażenie będzie wyglądało tak: <tr>\s*((?:<td.*?</td>\s*)+)<td(.*?</td>\s*)\s*</tr>\s* Pozdrawiam ![]() tolomei -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 11.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź tolomei. Racja jeśli chodzi o pierwszą kwestię (chociaż obie wersje sprawdzają się w wyszukiwaniu).
Jednak co do całego wyrażenia, które zamieściłeś - nie działa (sprawdziłem w Pajączku 5.8 i EmEditor 10 oraz na stronie maciek.lasyk.info/regexp_checker.html. Poza tym stosując do mojego wzoru Twoją propozycję wychodzi mi mniej więcej: <tr.*?(<td.*?</td>\s*){5}<td(.*?</td>\s*)</tr> Wzór działa przy wyszukiwaniu jak starsza wersja jednak przy zamianie problem jest ten sam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 10:54 |