View Issue Details

IDProjectCategoryView StatusLast Update
0003336Far ManagerRegExppublic2022-09-04 18:28
ReporterDrKnS Assigned ToDrKnS  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version3.0 
Target Version3.0Fixed in Version3.0 
Summary0003336: Регекс \{(.)?\} находит } в {}
DescriptionЕсть регекс \{(.)?\} - т. е. или любой символ в фигурных скобках, или пустые фигурные скобки.
При поиске в строке {} в $1 внезапно оказывается }.

std::regex / https://regex101.com - в $1 пусто.

На первый взгляд - код корректно откатывается назад, но не устанавливает RegExpMatch обратно в {-1, -1}.
TagsNo tags attached.
Build6018

Activities

shmuel

2016-10-30 14:04

developer   bugnote:0014956

Фигурные скобки не существенны для данной неисправности. То есть, можно чуть укоротить формулировку: Регекс a(.)?b находит b в ab

Xecutor

2016-11-01 05:22

reporter   bugnote:0014967

В строке RegExp.cpp:3229 начинается комментарий, убрав который это исправится.
Но наверное он там по какой-то причине... Которую я совершенно не помню :)

shmuel

2022-09-04 18:02

developer   bugnote:0017351

Приложен патч для Фар3. Проверен на far2l. Все мои тесты проходит.
patch.diff (448 bytes)   
--- RegExp.cpp.old	Sun Sep 04 19:55:31 2022
+++ RegExp.cpp	Sun Sep 04 19:57:20 2022
@@ -3095,12 +3095,11 @@
 							st.savestr=str;
 							stack.emplace_back(st);
 						}
-						/*
 						if(op->bracket.index>=0 && op->bracket.index<matchcount)
 						{
-							match[op->bracket.index].end=str-start;
+							match[op->bracket.index].start=-1;
+							match[op->bracket.index].end=-1;
 						}
-						*/
 						break;
 					}
 
patch.diff (448 bytes)   

Issue History

Date Modified Username Field Change
2016-10-30 13:40 DrKnS New Issue
2016-10-30 14:04 shmuel Note Added: 0014956
2016-11-01 05:22 Xecutor Note Added: 0014967
2022-09-04 18:02 shmuel Note Added: 0017351
2022-09-04 18:02 shmuel File Added: patch.diff
2022-09-04 18:28 DrKnS Assigned To => DrKnS
2022-09-04 18:28 DrKnS Status new => closed
2022-09-04 18:28 DrKnS Resolution open => fixed
2022-09-04 18:28 DrKnS Fixed in Version => 3.0
2022-09-04 18:28 DrKnS Build => 6018