StrExpression regex: Porovnání verzí

Z Wiki
Přejít na: navigace, hledání
(2. Další specifika)
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 1: Řádek 1:
 
Práce s regex v příkazu StrExpression má určitá specifika.
 
Práce s regex v příkazu StrExpression má určitá specifika.
 +
 +
Vychází ze standardní C++ knihovny, viz. https://en.cppreference.com/w/cpp/regex.html
  
 
----
 
----
Řádek 25: Řádek 27:
 
<code>.</code> zahrnuje i znaky pro konec řádku (tzv. "DOTALL", nebo "single line" flag)
 
<code>.</code> zahrnuje i znaky pro konec řádku (tzv. "DOTALL", nebo "single line" flag)
  
<code>Error: 125: Invalid expression</code> příkazu StrExpression nemusí nutně znamenat, že máme chybu v samotném výrazu. Chyba se může ukázat i v případě, kdy používáme zachytávací skupiny (capture groups), zatímco jsme v textu nenalezli hledaný řetězec. Jedná se o technické omezení na výstupu příkazu, ale nejde o bug. Pro zamezení pádu testu vložte StrExpression příkaz do příkazu Try, nebo nejprve hledaný řetězec vyhledejte bez zachytávací skupiny a potom, za pomocí příkazu If, přistupte k samotnému získání řetězce v prohledávaném textu.
+
<code>Error: 125: Invalid expression</code> příkazu StrExpression nemusí nutně znamenat, že máme chybu v samotném výrazu. Chyba se může ukázat i v případě, kdy používáme zachytávací skupiny (capture groups), zatímco jsme v textu nenalezli hledaný řetězec. Jedná se o technické omezení na výstupu příkazu, ale nejde o bug. Pro zamezení nechtěného pádu testu vložte příkaz StrExpression do příkazu Try, nebo nejprve hledaný řetězec vyhledejte bez zachytávací skupiny a potom, za pomocí příkazu If, přistupte k samotnému získání řetězce v prohledávaném textu.

Aktuální verze z 28. 8. 2025, 17:38

Práce s regex v příkazu StrExpression má určitá specifika.

Vychází ze standardní C++ knihovny, viz. https://en.cppreference.com/w/cpp/regex.html


1. Escape sekvence

1.1. "\r" a "\n" sekvence

Pokud si přejeme v regex výrazu použít escape sekvence pro carriage return a line feed, je třeba použít dvojité zpětné lomítko takto:

\\r

\\n

2. Další specifika

\s nezahrnuje znaky pro konec řádku

. zahrnuje i znaky pro konec řádku (tzv. "DOTALL", nebo "single line" flag)

Error: 125: Invalid expression příkazu StrExpression nemusí nutně znamenat, že máme chybu v samotném výrazu. Chyba se může ukázat i v případě, kdy používáme zachytávací skupiny (capture groups), zatímco jsme v textu nenalezli hledaný řetězec. Jedná se o technické omezení na výstupu příkazu, ale nejde o bug. Pro zamezení nechtěného pádu testu vložte příkaz StrExpression do příkazu Try, nebo nejprve hledaný řetězec vyhledejte bez zachytávací skupiny a potom, za pomocí příkazu If, přistupte k samotnému získání řetězce v prohledávaném textu.