Parse textus cum expressionibus regularibus (RegExp) in Excel

Parse textus cum expressionibus regularibus (RegExp) in ExcelUna maxime vicis-consumens et frustrating opus cum textu in Excel is parsing - parsing alphanumeric "pulticula" in partes et fragmenta quae ab eo egent. Exempli gratia:

  • codicem ex electronica excerpere (bonum est si in initio semper signum zip, sed quid si non est?)
  • inveniendo numerum et diem cautionem ex descriptione solutionis ripae constitutionis
  • extractio plumbi e variarum societatum descriptionibus in indice counterpartium
  • quaeramus numerum car numerum vel articulum in descriptione, etc.

Plerumque in talibus casibus, post semihoram tristem in textu manually legendo, cogitationes incipiunt in mentem venire aliquo modo ad hunc processum automate (praesertim si multum est notitiae). Plures sunt solutiones et diversi gradus complexionis-efficientiae;

  • Use constructum- in Praecedo textu munera ad quaerendum incisurae textum gluten: LEVSIMV (Left), IUS (RESISTENTES SUPERAVIT), PSTR (medium), STsEPIT (CONCATENO) atque analoga, CONCILIO (CONIUNCTA), TRIBULO (EXACT) etc. Hic modus bonus est si logica in textu patet (exempli gratia: index semper in principio inscriptionis). Alioquin formulae multo magis implicatae fiunt, interdum etiam ad formulas ordinatas, quae in magnis tabulis valde retardatur.
  • usura sicut text similitudo operator e Visual Basic involutus in tortor functionis consuetudo. Hoc tibi permittit ut flexibiliorem inquisitionem efficias utentibus characteribus wildcards (*, #,?, etc.) Infeliciter, hoc instrumentum non potest e textu substringi optatum extrahere - tantum reprehendo si in eo continetur.

Praeter hos alius accessus notissimus est in circulis angustis programmatum professionalium, tincidunt interretiales aliasque technas - hoc est iusto expressions (Regulares expressiones = RegExp = "regexps" = "regulares"). Plane, RegExp lingua est in qua indoles et regulae speciales adhibentur ut quaeras in textu necessarias substringit, eas extrahit vel cum aliis textibus substituit.. Locutiones regulares sunt instrumentum potentissimum et pulcherrimum quod omnes alios modos operandi cum textu ordine magnitudinis excedit. Multae programmationis linguarum (C#, PHP, Perl, JavaScript…) et editores textus (Verbi, Notepad+++) expressiones regulares sustinent.

Microsoft Praecedo infeliciter subsidium ex arca RegExp non habet, sed hoc cum VBA facile figi potest. Aperi Visual Basic Editor e tab elit (Developer) aut claviaturae alt+F11. Deinde inserere novus modulus per menu Inserere - OMNIBUS et describe in textu sequentis functionis macro ibi:

Public Function RegExpExtract(Text As String, Pattern As String, Libitum Item Ut Integer = 1) Vt String In Error GoTo ErrHandl Pone regex = CreateObject("VBScript.RegExp") regex.Pattern = Modus regex.Global = Verum si regex.Test (Text) deinde compositus = regex.Execute (Text) RegExpExtract = matches.Item (Item - I) Exitus Function finem si ErrHandl: RegExpExtract = CVErr (xlErrValue) finis Function  

Nunc claudere possumus Editorem Visual Basic et ad Excel redire ad novam notam nostram experiendam. Syntaxis eius est haec:

= RegExpExtract (Txt; Exemplum; Item)

ubi

  • txt - cellam cum textu quem inhibemus et e quo substringi velimus extrahere opus est
  • ratio - larva (forma) pro substring quaerere
  • Item - Sequentia numeri substringendi extrahendi, si plures ex iis (nisi specificati, primus locus exhibetur)

Maxime interesting res hic, sane, est Exemplum - chorda templates specialium notarum "in lingua" de RegExp, quod definit quid exacte et ubi invenire volumus. Hic sunt maxime fundamentales ut incipias:

 exemplum  Description
 . simplicissimus est dat. Aequet aliquem characterem in exemplari ad certum locum.
 s Ingenium quodlibet simile spatium (spatio, tab, vel linea confractus est).
 S
Varians anti-praecedentis exemplaris, id est nulla indoles non-whitespace.
 d
Omni numero
 D
Anti-varians praecedentis, ie quis non digitus
 w Quodlibet ingenium Latinum (AZ), digit vel underscore
 W Varians anti- qui prioris, id est non latinus, numerus et non underscore.
[moribus] In uncis quadratis, unam vel plures notas exprimere potes ad certum locum in textu. Exempli gratia Art et cuilibet horum verborum congruit: mensam or sella.

Characteres etiam enumerare non potes, sed eas ut per hyphen separatum, id est pro [ABDCDEF] scribo [AF]. aut loco [4567] introduce [-4 7].. Exempli gratia, omnes cyrillianos notas designare, formula uti potes [a-yaA-YayoYo].

[^moribus] Si post foramen quadratum bracket adde symbolum "operculum" ^tunc propositio contrarium sensum obtinebit - ad determinatum locum in textu, characteribus omnibus licebit, exceptis iis qui recensentur. Etiam, template [^ЖМ]ut invenies semita or substantia or forget, sed non FORMIDULOSUS or Mut, Eg.
 | Boolean operator OR (VEL) ad reprimendam ex certis indiciis. Exempli gratia (aThu|setiam | cautionem) quaeret textum quemlibet determinatum verborum. Typice optionum copia parenthesi inclusa est.
 ^ Initium lineae
 $ Finis linea
 b Finis verbi

Si certum numerum notarum quaerimus, exempli gratia signum sex digiti tabellarii vel omnes tres-litteras producti codices, tunc succurrimus. quantorum or quantorum expressiones speciales sunt quae numerum characterum quaerendorum exprimunt. Quantitates applicantur ad characterem qui praecedit;

  Quantor  Description
 ? Nulla vel efficitur nulla. Exempli gratia .? aut ejus absentiam quis moribus significabit.
 + Uno vel pluribus introitibus. Exempli gratia d+ significat aliquem numerum digitorum (id est numerus inter 0 et infinitum).
 * Nulla vel volutpat nulla, id aliquam quantitatem. Sic s* per quotlibet spatia vel spatia.
{numerus} or

{number1,number2}

Si numerorum eventuum stricte definitos designare debes, in crispis adstringitur tum specificatur. Exempli gratia d{6} est proprie sex digitorum, et forma s{2,5} - duo ad quinque spatia

Nunc ad partem maxime interesting transeamus – analysis applicationis functionis creati et quae de exemplis practicis e vita didicimus.

Numeri ex textu eiciendis

Incipiamus imprimis casum simplicem analysim - primum numerum ex alphanumeric polenta extrahere debes, exempli gratia, vis interminabilis virtutis e indice pretii suppeditat;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Logica post regularem elocutio simplex est; d significat quodlibet digiti et quantitatis + dicit numerum eorum unum vel plures esse. Duplex minus ante functionis necesse est ut "in musca" characteres extractos in plenum numerum e numero sicut-textu convertat.

postcode

Primo aspectu, omnia hic simplicia sunt - sex digitos exacte quaerimus in ordine. Utimur speciali charactere d nam digit et quantifier? 6} ad numerum characters:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Locus autem fieri potest, cum ad sinistram indicis in linea alia magna numerorum in ordine (phone numerus, TIN, argentaria etc.) Tum primum 6 tempus nostrum regulare evellet. digiti ab eo, i.e. non recte operantur;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Quod ut ne fiat, circum extremas expressionis regularis nostrae modum addere oportet b significat finem verbi. Hoc patebit Excell fragmentum (index) esse debere verbum separatum et non partem alterius fragmenti (numerus telephonicus);

Parse textus cum expressionibus regularibus (RegExp) in Excel

Phone

Problema de inveniendo numerum telephonicum in textu est quod tot sint optiones pro numeris scribendi - cum et sine hyphens, per spatia, cum vel sine codice regio in uncis, etc. Itaque, ut arbitror, ​​facilius est etc. Primum omnia haec ingenia emundare a fonte textu utens pluribus functionibus nested SUBSTITUTUS (SUBSTITUTUS)ita ut in unum totum cohaereat, deinde cum primitivo regulari d{11} XI digitorum in row evellere:

Parse textus cum expressionibus regularibus (RegExp) in Excel

ITN

Hoc paulo implicatius est, quod stannum (in Patria nostra) potest esse 10 digiti (pro entitatibus legalibus) vel 12-digiti (pro singulis). Si praesertim non reprehendis, satis fieri potest ut regulari d{10,12}sed, proprie loquendo, omnes numeros ab 10 ad 12 characteribus eruet, id est et erronee 11 digitos intrat. Rectius utaris duobus exemplaribus logicalibus VEL operatoribus connexis | (vertical talea);

Parse textus cum expressionibus regularibus (RegExp) in Excel

Quaeso nota quod in interrogatione primum numeros XII frenum quaerimus et tunc demum numeros X frenum. Si e converso regularem nostram expressionem scribimus, tum pro omnibus, etiam longis 12-bit TINs, eruetur, prima tantum 10 ingenia. Hoc est, post primam condicionem urgente, ulterior probatio non amplius perficitur;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Haec est fundamentalis differentia inter operantem | ex vexillum praestant logice munus OR (VEL)ubi argumentationes permutando non mutat eventum.

Productum SKUs

In multis societatibus, singulares identificatores tribuuntur bonis et officiis - articulis, SAP codes, SKUs, etc. Si logica in eorum notatione versatur, facile evelli possunt e quibusvis textus expressionibus regularibus adhibitis. Exempli gratia, si scimus articulos nostros semper constare tribus litteris capitalibus Anglicanis, hyphen et subsequentem numerum trium digiti, tunc:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Ratio post exemplum simplex est. [AZ] - Significat quodlibet caput litterarum Latinarum. Postero quantifier 3} Dicit nos magni momenti esse tres tales epistolas. Post hyphen exspectamus tres digitos, sic addimus in fine d{3}

Cash amounts

Simili modo ad paragraphum praecedens, etiam pretia (costs, VAT ...) ex bonorum descriptione trahere potes. Si ponderis nummariae, verbi gratia, hyphen indicentur, tum;

Parse textus cum expressionibus regularibus (RegExp) in Excel

exemplum d cum quantifier? + requirit quotcunque usque ad hyphen et d{2} et requirens denarios (duo digitos) post.

Si extrahere non debes, sed VAT, tum tertio argumento libitum functionis nostrae RegExpExtract uti potes, quod designat numerum ordinalem elementi extrahendi. Et quidem munus reponere potes SUBSTITUTUS (SUBSTITUTUS) in eventibus, hyphen ad vexillum separatoris decimales et duplicem minus in principio adde ut Excel interpretetur inventam VAT ut normalem numerum;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Numeri currus laminam

Si vehicula specialia, massa et alia motorcycles non accipis, tunc numerus car- vus vexillum secundum principium "litteras tres numeri - duas litteras - codicem regionis" est. Regio autem codicis esse potest 2- vel 3-digiti, et ea tantum quae in Latino alphabeto apparentia pro litteris adhibentur. Haec igitur regularis expressio nos adiuvabit ut numeros e textu extrahat;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Tempus

Tempus extrahendi in forma HH:MM, apta haec dictio regularis;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Post colonia fragmentum [0-5]dquemlibet numerum in latitudine 00-59, quod facile est figurare, ponit. Ante colon in parenthesi, duo exemplaria operantur, logico OR separata;

  • [0-1]d - quis numerus in range 00-19 "
  • 2[0-3]. - quis numerus in range 20-23 "

Ad effectum consecutum, vexillum Excel functionis apponere potes TEMPUS (TEAM)eam in formam temporis convertendi, quae rationi comprehensibilis et ad ulteriora calculis apta est.

Password reprehendo

Puta nos indicem Tesserae ab usoribus ad proprietatem inventarum reprimere. Secundum regulas nostras, Tesserae tantum litteras Anglicas (none vel verbo ire) et numeros continere possunt. Spatia, underscores et alia puncta interpunctionis non licet.

Reprehendo componi potest utens expressionibus simplicibus regularibus hisce:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Re quidem vera, tali exemplo postulamus ut inter principium.^) Et finem ($) in textu nostro notae tantum erant ex uncis quadratis positae. Si etiam longitudinem tesserae reprimendam (exempli gratia, saltem 6 characters), tunc quantitatis + potest reponi intervallum "sex vel" in forma {6:}:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Ab urbe oratio

Dicamus nos necesse est urbem ex talea electronica trahere. Propositum regulare adiuvabit, textum ex "g" extrahendo. ad proximum comma:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Inspiciamus hanc formam propius.

Si textum superius legisti, iam intellexisti quasdam notas in expressionibus regularibus (spatiis, asteriscis, signis pupa etc.) specialem significationem habere. Si has notas ipsas quaerere debes, tunc a backslash praeceduntur (interdum vocati opposuitque). Cum igitur quaerendo fragmentum g. debemus scribere regulariter Dominus. si plus quaerimus, tunc + etc.

Duae notae sequentes in nostro template, puncto et asterisco quantitatis, pro quolibet numero notarum cuiuslibet, id est cuiuslibet civitatis, significant.

Est comma in fine Formulae, quia textum ex "g quaerimus." ad comma. Sed in textu possunt esse plura commata, vox? Non solum post urbem, sed etiam post plateas, domos, &c. Quisnam eorum cessabit petitio nostra? Id quod quaestio nota est. Sine ea, nostra regularis expressio evellere potest chorda quam longissima;

Parse textus cum expressionibus regularibus (RegExp) in Excel

Secundum expressiones regulares talis exemplar est "avarus". Ad emendandam condicionem, quaestio nota necessaria est - facit quantitantem post quem stat "parcum" - et quaesitio nostra textum tantum ad primum dictionum comma post "g. sumit":

Parse textus cum expressionibus regularibus (RegExp) in Excel

Filename ex plena semita

Alius locus usitatissimus est tabellae nomen e pleno itinere extrahere. Simplex expressionis regularis formae hic adiuvabit:

Parse textus cum expressionibus regularibus (RegExp) in Excel

Dolus hic est, quod inquisitio fit in opposito - a fine ad principium, quia in fine nostrae formulae est. $et omnia quaerimus ante illud ad primum backslash a iure. Backslash evasit, sicut punctum in exemplo praecedente.

PS

"Versus finem" declarare cupimus omnium praedictorum particulam esse parvam omnium possibilitatum quas regulares expressiones praebent. Praecipuae notae et regulae ad eorum usum multum sunt, et libri integri in hoc argumento scripti sunt (saltem hoc initio commendo). Quodammodo scribendi regularum locutionum ars est fere. Fere semper, expressio regularis ficta emendari vel suppleri potest, ut elegantius vel elaborare possit latius initus notitiarum.

Ad analysim et parse aliorum expressiones regulares vel proprium tuum debug, plura officia online opportuna sunt; RegEx101, RegExr et magis

Infeliciter, non omnes notae locutionum regularium classicarum in VBA sustentantur (exempli gratia, adversae perquisitionis vel POSIX classes) et cum cyrillico operari possunt, sed puto id quod satis est primum tibi placere.

Si res nova non es, et aliquid communicas, expressiones regulares utiles relinque cum operando in Excel in commentationibus infra. Una mens bona est, sed duo caligae par sunt!

  • Repositoque ac purgat textum cum substituto functionis
  • Quaerere et illustrare notis latinis in textu
  • Quaere proximum textum similem (Ivanov = Ivonov = Ivanof, etc.)

Leave a Reply