Jump to content

regular expression hell


faustf
 Share

Recommended Posts

hi guy i   have  a  web  page  and i want  extract  a  text

the code is

<!-- ngRepeat: fascia in FascePrezzo --><li
 class="ng-scope" abp="160"
 data-ng-repeat="fascia in FascePrezzo"><a
 class="ng-binding" href="#" abp="161"
 data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i
prodotti da 58.9 a 126 euro</a></li>
<!-- end ngRepeat: fascia in FascePrezzo --><li
 class="ng-scope" abp="160"
 data-ng-repeat="fascia in FascePrezzo"><a
 class="ng-binding" href="#" abp="161"
 data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i
prodotti da 126 a 200 euro</a></li>
<!-- end ngRepeat: fascia in FascePrezzo --><li
 class="ng-scope" abp="160"
 data-ng-repeat="fascia in FascePrezzo"><a
 class="ng-binding" href="#" abp="161"
 data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i
prodotti da 200 a 680 euro</a></li>
<!-- end ngRepeat: fascia in FascePrezzo --><li
 class="ng-scope" abp="160"
 data-ng-repeat="fascia in FascePrezzo"><a
 class="ng-binding" href="#" abp="161"
 data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i
prodotti da 680 a 29050 euro</a></li>
<!-- end ngRepeat: fascia in FascePrezzo -->

i want  take  a:   " i prodotti da  * a * euro "

i write  a  regularexpress  in this  mode

Local $aArray_Cod_prodotti = StringRegExp($sText, '(?i)data-ng-click="CercaPerPrezzo.+?">i\R(.*?)</a></li>', $STR_REGEXPARRAYGLOBALMATCH)

_ArrayDisplay ($aArray_Cod_prodotti)

but not  go  :(someone  have idea?

 

Link to comment
Share on other sites

if they are always numbers (and there would always at least be one)

#include<array.au3>

$sFile = fileread("test.txt")

$aSplit = stringregexp($sFile , "prodotti da \d+ a \d+ euro" ,3)
_ArrayDisplay($aSplit)

 

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

  • Moderators

faustf,

This seems to do the trick:

#include <Array.au3>

$sHTML = '<!-- ngRepeat: fascia in FascePrezzo --><li' & @CRLF & _
    ' class="ng-scope" abp="160"' & @CRLF & _
    ' data-ng-repeat="fascia in FascePrezzo"><a' & @CRLF & _
    ' class="ng-binding" href="#" abp="161"' & @CRLF & _
    ' data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i' & @CRLF & _
    'prodotti da 58.9 a 126 euro</a></li>' & @CRLF & _
    '<!-- end ngRepeat: fascia in FascePrezzo --><li' & @CRLF & _
    ' class="ng-scope" abp="160"' & @CRLF & _
    ' data-ng-repeat="fascia in FascePrezzo"><a' & @CRLF & _
    ' class="ng-binding" href="#" abp="161"' & @CRLF & _
    ' data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i' & @CRLF & _
    'prodotti da 126 a 200 euro</a></li>' & @CRLF & _
    '<!-- end ngRepeat: fascia in FascePrezzo --><li' & @CRLF & _
    ' class="ng-scope" abp="160"' & @CRLF & _
    ' data-ng-repeat="fascia in FascePrezzo"><a' & @CRLF & _
    ' class="ng-binding" href="#" abp="161"' & @CRLF & _
    ' data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i' & @CRLF & _
    'prodotti da 200 a 680 euro</a></li>' & @CRLF & _
    '<!-- end ngRepeat: fascia in FascePrezzo --><li' & @CRLF & _
    ' class="ng-scope" abp="160"' & @CRLF & _
    ' data-ng-repeat="fascia in FascePrezzo"><a' & @CRLF & _
    ' class="ng-binding" href="#" abp="161"' & @CRLF & _
    ' data-ng-click="CercaPerPrezzo($event,fascia.Min,fascia.Max)">i' & @CRLF & _
    'prodotti da 680 a 29050 euro</a></li>' & @CRLF & _
    '<!-- end ngRepeat: fascia in FascePrezzo -->'

$aRet = StringRegExp($sHTML, "prodotti da \d+.?\d+? a \d+.?\d+? euro", 3)

_ArrayDisplay($aRet, "", Default, 8)

Decode:

\d+.?\d+?
digits followed by a possible decimal point and then possible other digits

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

faustf,

No problem - and no need to get too worked up about it.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

That's AngularJS. Wait whilst a shed a tear of joy!

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...