[RegularExpression] Pominięcie nawiasów w wyrażeniu |
[RegularExpression] Pominięcie nawiasów w wyrażeniu |
24.11.2016, 18:29:30
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 838 Pomógł: 226 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Mam kod RegExp:
Kod ((.*){1,})(\(([0-9]{4})\)) Kod działa wtedy gdy trzeba: np.: Unia Polsko-litewska (1385) Jednak gdy zabraknie nawiasów, to RE nie działa. Potrzebuję rozdzielić ten kod na TEXT i LICZBĘ, lub tylko TEXT gdy nawiasów nie ma, albo w nawiasie jest coś innego niż rok. Ten post edytował Tomplus 24.11.2016, 18:30:37 |
|
|
24.11.2016, 20:37:55
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
|
|
|
24.11.2016, 20:57:07
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 838 Pomógł: 226 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Dobrze.
Jednak mi pomogłeś perfekcyjnie: Zrobiłem korektę, dodając spację oraz co najważniejsze dodałem flagę U i teraz kod jest taki: Kod ((.*){1,})(\s\(?([0-9]{4})\)?) Dzięki temu, w grupie 1 nie ma dzikiego nawiasu ( oraz nie ma spacji między nazwą a nawiasem. Zwrot wartości jest: Full match 0-26 `Unia Polsko-litewska (1385)` Group 1. 0-20 `Unia Polsko-litewska` Group 2. 19-20 `a` Group 3. 20-26 ` (1385` Group 4. 22-26 `1385` grupa 1 i grupa 4 daje mi wynik który oczekiwałem. Ten post edytował Tomplus 24.11.2016, 21:03:10 |
|
|
24.11.2016, 21:14:17
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A co w przypadku:
Unia Polsko-litewska abc lub Unia Polsko-litewska 1985 ? -------------------- |
|
|
24.11.2016, 21:19:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 838 Pomógł: 226 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Logicznie, pobiera całość.
Mnie zależy tylko aby wartość w nawiasie trafiła do osobnej grupy. Dane z których pobieram, mają swoją logikę. Linia ma nawias z rokiem, a inna linia nawiasu nie ma. |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 13:06 |