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ś... ? (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
|
![]() |
Post
#2
|
|
|
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 |
|
|
|
matusjamar [HTML]wyrażenia regularne - formatowanie komórki w wierszu tabeli 11.12.2010, 23:09:07
tolomei Cześć
Nie wiem czemu dałeś [^.] co oznaczałoby ... 12.12.2010, 00:07:53 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 05:01 |