#regexp najlepsze najnowsze

OSH1980 2025-02-22 09:21:51 +0
Słuchajcie spece. Mam tabelkę o dwóch kolumnach. W pierwszej mam to:

B.A.T.
B.A.T.
B.A.T.
B.A.T.
B.A.T. II
B.A.T. II
B.A.T. II
B.C. Kid
B17 Flying Fortress
Baal
Baby Bug
Baby Jo in 'Going Home'
Back to the Future Part II
Back to the Future Part III
Back To The Golden Age
Back To The Golden Age
Backgammon
Backgammon
Backgammon Royal
Backgammon Royale
Backlash
Backstage
Bad Cat
Bad Company
Bad Dudes

A w drugiej to
B17 Flying Fortress.7z
Baal.7z
Baba Yaga.7z
Baby Bug.7z
Baby Ghost Mine I .7z
Baby Jo in 'Going Home'.7z
Backgammon.7z
Backgammon (1987)(King Size)[v SCA][0206].7z
Backgammon Royal.7z
Backgammon Royale.7z
Back To The Golden Age
Back To The Golden Age

To oczywiście tytuły gier. Powiedzcie mi: czy jest jakieś wyrażenie regularne, które umożliwi zaznaczenie w obu tych kolumnach tych samych gier, biorąc pod uwagę wyłącznie pierwsze, powiedzmy 10 znaków? Chodzi o to, że w drugiej kolumnie są nazwy archiwów, a do nich są dołożone też czasem np. daty powstania, nazwy grup crackerskich itp. a w pierwszej kolumnie to są same tytuły gier. Zawartości obu kolumn nie są identyczne, bo pierwsza kolumna ma tego więcej. A ja chciałbym pozostawić w niej tylko to, czego mi brakuje w drugiej. Ma ktoś jakiś pomysł?
#regexp
kozabonzo 2025-02-22 09:58:54 +0
Skopiuj ten tekst do chatGPT i pewnie dostaniesz rozwiazanie
RozowaWkolorachTeczy 2024-02-25 15:11:01 +1
Jak wyrażeniem regularnym sprawdzić w pliku xls czy w jakiejś komórce obok znaku "/" stoi coś innego niż spacja?
Czyli taką wartość będzie ok: 1 / 2, a taka już nie: 1/2

#regexp #regex #programowanie #programista15k
c.....s 2024-02-25 15:22:27 +2
@RozowaWkolorachTeczy: Szkoda, że nie wynaleziono sztucznej inteligencji, która byłaby w stanie odpowiedzieć na to pytanie.
Kolczaneiro 2024-02-25 15:28:31 +4
@RozowaWkolorachTeczy if w komórce jest podstring "/ " to daj true, else false

Tyle (⌐ ͡■ ͜ʖ ͡■)
pokaż komentarze (1)
scorpio18k 2022-11-08 23:04:17 +0
Jak zrobić, żeby znalazło "body" w tekście, ale tak, żeby pokazało max 20 znaków przed i po znalezionym słowie.

Jak zrobię:
results = re.findall(".{20}body.{20}", content)

to znajdzie tylko dokładne dopasowanie gdzie jest 20 znaków przed i po a ja chciałbym wszystkie body, tylko żeby pokazywało te 20 znaków przed i po znalezionym "body".

#python #regexp #regex
CancerLight 2022-11-08 23:06:22 +0
@scorpio18k: w sensie, żeby nie pokazywało body tylko to co przed body i po body do 20 znaków?
scorpio18k 2022-11-09 03:42:57 +1
czy to jakieś strukturalizowane dane typu html/xml?

@qbek: Nie. Po prostu w javascript coś nie działało i szukałem, gdzie użyłem "body" oraz chciałem podejrzeć w jakim kontekście było użyte. Także to rozwiązanie {0,20} dało dobre wyniki.
pokaż komentarze (3)
malypirat 2022-10-21 16:19:19 +0
Pytanie to #programista15k, ogólnie specjalisty od #regexp - mam taki pattern:

(?<=).*?(?=<\/XIMAGE5>)

i chciałbym wyciągnąć:

- pierwszy element: ""
- środek (czyli: .*?)
- no i ostatni element

i teraz chodzi oto, że może mieć (ale nie musi) spację przed sobą np. " foo"
i chciałbym wyciągnąć także te spacje, które są

- https://regex101.com/r/sojzRw/1
zibizz1 2022-10-21 16:28:17 +0
' ?(?<=)(?.*?)(?=<\/XIMAGE5>)'
moze tak?
a5f5c1 2022-10-21 16:40:37 +0
@malypirat: może zapytaj na reddicie? ( ͡° ʖ̯ ͡°)
pokaż komentarze (1)
grizzly_joe 2022-09-19 21:27:33 +0
#programowanie
#regex #regexp
elo. czy jest możliwośc napisania regexpa, który wyciągnie wszystkie kombinacje występujących po sobie trzech słow minimum 2 literowych?
Przykład:
Ala ma # bardzo miłego grzecznego kota
Output:
1) bardzo miłego grzecznego
2) miłego grzecznego kota

Na ten moment mam coś takiego:
[\p{IsAlphabetic}]{2,} [\p{IsAlphabetic}]{2,} [\p{IsAlphabetic}]{2,}
ale wykryte zostaje tylko 'bardzo miłego grzecznego'
Krolik 2022-09-20 15:59:28 +1
@grizzly_joe: po co regexp do czegoś do czego nie jest potrzebny regex?

`scala> "Ala ma # bardzo miłego grzecznego kota".split(" ").sliding(3).filter(.forall(.length > 2)).toList
val res5: List[Array[String]] = List(Array(bardzo, miłego, grzecznego), Array(miłego, grzecznego, kota))
`
grizzly_joe 2022-09-20 16:46:29 +1
@Oo-oO: Działa, dzięki
pokaż komentarze (6)
Niukron 2022-05-26 18:33:47 +0
#regexp #javascript #php

Mirki, potrzebuję z tekstu wyciągnąć liczbę o określonej ilości cyfr - 10
Wykminiłem coś takiego: (\d{10})
Ale wyszukuje mi też dłuższe i ucina je do 10 cyfr. Ktoś z was wie, jak to ograniczyć do wyszukiwania max 10?
akcer 2022-05-26 19:16:00 +2
@Niukron: (?<!\d)\d{10}(?!\d)
croppz 2022-05-26 19:22:18 +3
@lobo: no nie mówiła, więc każda jest akceptowalnym rozwiązaniem. Wątpliwości należy rozstrzygać na korzyść programisty. xD
pokaż komentarze (10)
lutecki 2022-04-29 19:22:25 +0
Mam string:
SVC,PRO,WL CHRGE CASE-LKKT,CI/AR Purchase Order: CLC-GT-103782 Invoice AE78060885/14.03.2022 Country of Origin: VN

Jak przy pomocy #php i/lub #regexp wyciągnąć CLC-GT-103782 zakładając, że Purchase Order: oraz Invoice są zawsze po sąsiedzku?

#programowanie
tell_me_more 2022-04-29 19:28:10 +2
@lutecki: .*Purchase Order(.*)Invoice.*

masz tu od razu w testerze: https://regex101.com/r/hW1Gqd/1
pokaż komentarze (6)
N.....e 2021-07-02 13:49:21 +1
Naklepałem sobie regexa który matchuje mi stringa z dwoma datami przedzielonymi znakiem /

Dla przykładu: 07-03-2020/08-03-2020

Czy można ogarnąć tego regexa tak żeby nie powtarzać go dwa razy, przed znakiem / i po znaku / ?

(?:0[1-9]|2[0-9]|3[0-1])-(?:0[1-9]|1[1-2])-\d{4}/(?:0[1-9]|2[0-9]|3[0-1])-(?:0[1-9]|1[1-2])-\d{4}

#programowanie #regexp #regex
p.....3 2021-07-02 13:58:27 +1
@Tacocat: To nie jest poprawny regex do tego problemu. Pozwala na brak znaku / po środku
N.....e 2021-07-02 14:11:13 +1
@pp53: @Tacocat: rozwiązane z pomocą Tacocat, wystarczyło na przed końcem dodać /? Podzielę się jak wróci internet w komputerze ( ͡° ͜ʖ ͡°)
pokaż komentarze (7)
DreqX 2021-06-01 23:00:42 +0
Jest tu jakiś spec regexp? Potrzebuję złapać wszystko (włączając nowe linie) pomiędzy stringiem ABC i pierwszym wystąpieniem stringa XYZ. Obecnie mam:
(?=ABC)(?s)(.*)(?<=XYZ)
Ale to łapie do ostatniego się pojawienia XYZ, a nie pierwszego :(
#regexp #programowanie
szagrat777 2021-06-01 23:07:18 +1
@DreqX: używasz zachłannego kwantyfikatora, więc .* bierze wszystko a XYZ jest dopasowane jak najdalej. W javie sa 3 greed, reluctant, possesive. Tobie potrzebny jest reluctant
armacoder 2021-06-01 23:10:39 +1
(?=ABC)(?s)(.*)(?<=XYZ)

@DreqX: Może spróbuj zamienić (.*) na (.+?)
pokaż komentarze (2)
UberRam 2021-02-26 18:36:41 +0
Pytanie z kategorii regex: W jaki sposob mozna skomponowac wyrazenie, ktore matchuje np. wszystkie adresy url, poza jakimis wyjatkami, np. z domeny amazona?
#programowanie #naukaprogramowania #wyrazeniaregularne #regex #regexp
jagodowy_krol 2021-02-26 18:40:08 +1
@UberRam: negacja?
Saly 2021-02-26 19:18:01 +2
@UberRam: https://stackoverflow.com/a/1240293/4638604 , tyle, że jak zachodzi konieczność na look-ahead/look-behind, to lepiej rozwiązać problem w inny sposób np. dwa regexy: jeden sprawdza czy przepuścić a drugi, czy odrzucić
pokaż komentarze (7)
zwei 2020-12-29 02:13:00 +0
#regexp #regex #programowanie

Czy jest tu jakiś spec od regexów?

(?:(?!\1))(\d)\1\b

Dla stringa 888 mam full match 88, ale z tego, co rozumiem, to (?:(?!\1)) powinien eliminować ósemkę na początku i nie dać matcha. Zresztą jak zamieniam \1 na 8, to tak rzeczywiście jest. To ja już nie wiem, jak zrobić, żeby tej pierwszej grupy (w tym przypadku pojedynczej ósemki) nie brał. Rzecz w tym, że to nie muszą być ósemki, tylko dowolne cyfry.

Czyli ma być

888 brak matcha
788 match
444 brak
844 match
Fitoplankton 2020-12-29 07:20:23 +1
@zwei: nie pamiętam dokładnej nazwy, ale to ma chyba związek z wyszukiwaniem wstecznym. Normalnie regex jest maszyną stanów, która przetwarza tekst tylko wprzód. Tutaj masz backmatching. Rzucam tylko wskazówkę, powinieneś znaleźć odpowiednią flagę
MQs 2020-12-29 08:48:57 +1
@zwei: To (?!...) (negative lookahead) działa w odniesieniu do aktualnej pozycji (w twoim przypadku początek), więc to nic nie robi - znaczy match będzie się opierał tylko na powtórzonych ostatnich cyfrach, bo na początku sprawdzasz czy po tym co już dopasowałeś (jeszcze nic) jest coś innego niż to co będzie następne. Dlatego też non-capture nie potrzebny, bo to nie jest nawet dopasowywany ciąg tylko założenie dotyczące tego z czym "sąsiaduje".
(?!(\d)\1)\d\d\b albo (\d)(?!\1)\d\b dopasuje dwie różne cyfry. Jak chcesz żeby kolejne były takie same to jeszcze druga grupa, czyli np. (\d)(?!\1)(\d)\2\b.
Zresztą, z opisu wygląda na to, że wystarczy szybko wyłapać \d{3} i porównać znaki.
pokaż komentarze (3)
Generyczny_nick 2020-08-12 13:32:54 +2
Mireczki szybkie pytanie z kategorii wyrażenia regularne:

Potrzebuję zwalidować stringa który może się składać jedynie z a-zA-Z0-9_ więc to załatwia mi \w ale do tego potrzebuję sprawdzić czy string nie składa się wyłącznie z cyfr 0-9 (np 555).

Jak to pożenić?

#programowanie #programista15k #naukaprogramowania #regex #regexp
GienekZFabrykiOkienek 2020-08-12 13:45:11 +2
@Generyczny_nick: A jak byś ulepił takiego p----a ( ͡° ͜ʖ ͡°):

[a-zA-Z0-9_]*[a-zA-Z]+[a-zA-Z0-9_]*
GienekZFabrykiOkienek 2020-08-12 17:05:52 +2
@Generyczny_nick: A po co tak? Zrób sobie funkcję w którą wpuścisz tego swojego regexa, zastosuj w niej go w try-catch i jak nie rzuci błędem to zwróć sukces ( ͡° ͜ʖ ͡°)
pokaż komentarze (11)
ojsak 2020-06-28 18:19:04 +0
Serwus. Potrzebuję pilnej pomocy z regexem.
Chciałbym sobie wyłapać współrzędne geograficzne ze stringa tak żeby niezależnie od tekstu przed, separatora lub tekstu po wartościach koordynatów, tekst został rozpoznany.
Przykład:
TEXT52.405449TEXT16.883359TEXT

Jakieś pomysły?

#programowanie #regexp
tell_me_more 2020-06-28 18:22:29 +0
TEXT nie zawiera cyfr ?
ojsak 2020-06-28 18:25:04 +0
@tell_me_more: załóżmy że nie, ale moze zawierac znaki specjalne jak np stopnie
pokaż komentarze (4)
s_theCapt 2020-02-06 18:40:25 +0
#programowanie #regexp próbuję zdebuggować moją ekspresję którą konstruuję ( #cpp #qt ) w ten sposób:
"\{ARGS" + QString("(?:\[(\d+),(\w+)?\])?").repeated(64) + "\}"
czyli odpowiadającą np. napisowi takiemu jak ten:
{ARGS[2,1][10,D][2,255][10,wykop]}
z tym, że ciąg wyrazów może być dłuższy (maksymalnie 64 pary). Działało dobrze póki miałem 16 par, a teraz przy 64 dostaję brak zgodności i na http://regex101.com dostaję "catastrophic backtracking" opisane tutaj: https://www.regular-expressions.info/catastrophic.html - nie umiem jednak zrozumieć jak przerobić moją ekspresję... problem polega na tym, że nie wiem ile będzie argumentów w stringu. Wcześniejszy regex to po prostu "+" zamiast "repeated" ale wtedy nie mogłem pobierać argumentów z grup... myślę czy nie prościej zmienić podejście i bezpośrednio iterować sobie po stringu? będzie wolniej, szybciej?
MamCieNaHita 2020-02-06 18:45:27 +0
@s_theCapt: im mniej zlecisz silnikowi wyrażeń regularnych, tym szybciej powinno być

EDIT: od c++11 masz raw stringo, żeby nie dostać p-------a z \
s_theCapt 2020-02-06 18:53:28 +0
@MamCieNaHita: no tak, ale jak zlecę mniej to nie mam jak pobrać submatchy :( i nie wiem jak użyć tego: https://www.regular-expressions.info/possessive.html - i mógłbym zrobić po prostu pętlę for i szukać kolejnego nawiasu sam po poprzednim sprawdzeniu ogólnym wyrażeniem regularnym, ale wydaje mi się, że to będzie wolniejsze niż już gotowy silnik przeszukania stringów...
pokaż komentarze (4)
chrabia_bober 2020-02-05 12:54:51 +0
#regexp #mojaprzygodazregex #python #til

Taki tam dzienniczek tego co dzisiaj sie nauczylem. Moze bedzie regularnie.

(?)(.*?)(?=<\/tag_name>) - wyszukaj wszystkie wartosci w tagu tag_name

lookahead, lookbehind dziala tylko z Perl-Style extention regex , flaga -P przy uzywaniu grep. Co mnie zdziwilo ze Sublime Text tez to obsluguje.

Polecam - https://caspar.bgsu.edu/~courses/Stats/Labs/Handouts/grepadvanced.htm
O.....I 2020-02-05 12:57:45 +0
@chrabia_bober: a gdzie się cokolwiek odnosi specyficznie do języka python?
chrabia_bober 2020-02-05 13:43:11 +1
@OPcodeRTI Albo tak (?<!def |_)fu\(\w*\)
pokaż komentarze (6)
kaktus_z_ostrymi_kolcami 2019-11-21 18:00:32 +0
Jak pociąć zdanie po każdym białym znaku za wyjątkiem niełamliwej spacji? (nie jest ona zapisana jako encja, tylko normalnie, jako znak UTF-8).
Idzie jakoś za jednym preg_split? Czy trzeba najpierw tę niełamliwą spację na coś podmienić, pociąć zdanie po \s i z powrotem podmiana tego czegoś na twardą spację w tym elemencie tablicy, w którym występuje?
#php #regexp #regex
rzezimieszek_ 2019-11-21 18:57:25 +1
@kaktus_z_ostrymi_kolcami:

to niżej mi działa, wersja php 7.3


$te = 'Tekst sobie tu nie la la';
print_r(preg_split('/((?!\u00a0)\s)+/', $te));
rzezimieszek_ 2019-11-21 19:04:00 +1
Wynik
$ php test.php
Array
(
[0] => Tekst
[1] => sobie
[2] => tu nie
[3] => la la
)
pokaż komentarze (4)
saif3r 2019-09-26 22:32:03 +0
Mirki,
Jak zmodyfikować to wyrażenie aby brało tylko rozszerzenie pliku bez spacji po kropce?
Regex: (\.[^.\/:*?"<>|\r\n]+$)
Treść pola: wykopface. jpg
Powyższą treść powinno ignorować i brać tylko rozszerzenia bez spacji typu wykopface.jpg

#programista15k #programowanie #regexp #kiciochpyta
Elec 2019-09-26 22:33:04 +1
k---a regex jak ja cię nienawidzę
bmLq 2019-09-26 22:46:27 +1
@saif3r: spróbuj zamienić \r\n na \s
pokaż komentarze (12)
q.....n 2019-08-23 21:44:40 +1
Hej,
Poszukuję wyrażenia regularnego, którego celem będzie znalezienie w kodzie wywołania funkcji push_back na samym sobie np.
r_et.push_back(r_et[i]);
prosty regex push_back\([^\n]+\[ nie jest zbyt optymalny, bo wykrywa 583 rekordy, z których może 10 będzie przydatnych.

#programowanie #regex #regexp
Nicolas_Bourbaki 2019-08-23 22:05:05 +3
@qarmin:

A to jest w ogóle możliwe do zrobienia?
Tzn. szukasz symbol B takiego, że jego reguła produkcyjna to
B->A push_back A
a takie wyrażenie nie należy do gramatyki regularnej tylko do bezkontekstowej.

Ale mogę się mylić. Jak ktoś poda dobrą odpowiedź to wołaj, sam jestem ciekaw
Saly 2019-08-23 23:14:18 +1
pokaż komentarze (3)