Имам една малка част от реликтния код написан на Javascript, който сканира източник на уеб страница и търси модела.
Премествам функционалността в Java програма. Така че, моят questiong е как мога да анализира JavaScript редовен израз на Java един с някаква функция на намиране и замяна?
Например моят JavaScript Regex в момента чете (като низ)
RegEx = "/(\/addthis_widget\.(js|php)|\.addthis\.com\/js\/widget\.(js|php))/i";
Намерих тази стара публикация на stackoverflow:
Как да конвертирате javascript regex на безопасен java regex?
което предполага, че това ще свърши работа:
strOutput.replace("/{{[^]*?}}/g","");
Това обаче не изглежда достатъчно стабилно и не създава RegEx, който се признава от компилатора.
Отговори:
1 за отговор № 1Премахнете / в началото и / i в края. Добавете (? I) в началото.
Java не се използва /expr/options
формат. /expr/G
ще бъде заменен с G граница мач, но в Java обикновено просто се обадите matcher.find()
няколко пъти и ще започне автоматично търсенето на мача в края на предишното, което прави G безсмислен.
Променете всичко \/
да се /
, напред не трябва да се избягва.