SlideShare a Scribd company logo
1 of 30
Download to read offline
And are they contagious?
There is no official standard for
regular expressions, so no real
definition.

Simply put, you can call it a
text pattern to search and/or
                                    Easy peasy!
replace text.
Perl programming language



Perl-compatible

.NET

Java

JavaScript

…
                  What, no cherry flavour?
Back to grammar school!
a matches any occurrence of that character

Jack is a boy.

cat matches

About cats and dogs.
square bracket                [
backslash                     
caret                         ^
dollar sign                   $
period or dot                 .
vertical bar or pipe symbol   |
question mark                 ?
asterisk or star              *
plus sign                     +
opening round bracket         (
closing round bracket         )
opening curley bracket        {
Special characters are reserved for special use.

They need to be preceded by a backslash if you want to
match them as literal characters.

This is called escaping.

If you want to match 1+1=2 the correct regex is 1+1=2
tab                 t
carriage return     r
line feed           n


beginning of line   ^
end of line         $
word boundary       b
If regular expressions are Unicode enabled you can
search any character using the Unicode value.

Depending on syntax: u0000 or x{0000}

Hard space             u00A0 or x{00A0}
® sign                 u00AE or x{00AE}
...
Quantifiers allow you to specify the number of
occurrences to match against

X?             X, once or not at all
X*             X, zero or more times
X+             X, one or more times
X{n}           X, exactly n times
X{n,}          X, at least n times
X{n,m}         X, at least n but not more than m times
The regex colou?r matches both colour and color.

You can also group items together by using brackets:

Nov(ember)? will match Nov and November

The regex a+ is the same as a{1,} and matches a or aaaaa

The regex w{3} matches www.qa-distiller.com
Simply place the characters you want to match between
square brackets.

If you want to match an a or an e, use [ae]. You could
use this in gr[ae]y to match either gray or grey.

A character class matches only a single character, the
order is not important

You can also use ranges. [0-9] matches a single digit
between 0 and 9
Typing a caret after the opening square bracket will negate
the character class.

q[^u] means: "a q followed by a character that is not a u".

It will match the q and the space after the q in

Iraq is a political quagmire.

but not the q of quagmire because it is followed by the
letter u
d             digit                  [0-9]
w             word character         [A-Za-z0-9_ ]
s             whitespace             [ trn]

Negated versions

D             not a digit            [^d]
W             not a word character   [^w]
S             not a whitespace       [^s]
The dot matches a single character, without caring what
that character is.

The regex e. matches

Houston, we have a problem
If you want to search for cat or dog, separate both options
with a vertical bar or pipe symbol:

cat|dog matches

Are you sure you want a cat?

You can add more options like this:

green|black|yellow|white
Which of the following completely matches regex a(ab)*a

1)   abababa
2)   aaba
3)   aabbaa
4)   aba
5)   aabababa
Which of the following completely matches regex ab+c?

1)   abc
2)   ac
3)   abbb
4)   bbc
5)   abbcc
Which of the following completely matches regex a.[bc]+

1)   abc
2)   abbbbbbbb
3)   azc
4)   abcbcbcbc
5)   ac
6)   asccbbbbcbcccc
Which of the following completely matches regex
(very )+(fat )?(tall|ugly) man

1)   very fat man
2)   fat tall man
3)   very very fat ugly man
4)   very very very tall man
Still awake?
Positive lookahead:           X(?=X)

Match something that is followed by something
Yamagata(?= Europe) matches

Yamagata Europe, Yamagata Intech Solutions

Negative lookahead:           X(?!X)

Match something that is not followed by something
Yamagata(?! Europe) matches

Yamagata Europe, Yamagata Intech Solutions
Positive lookbehind:         (?<=X)X

Match something following something
(?<=a)b matches

thingamabob

Negative lookbehind:         (?<!X)X

Match something not following something
(?<!a)b matches

thingamabob
Round brackets create a backreference.

You can use the backreference with a backslash + the number of the
backreference.

The regex Java(script) is a 1ing language matches
Javascript is a scripting language

The regex (Java)(script) is a 2ing language that is not the same as 1
matches
Javascript is a scripting language that is not the same as Java
Use the regex b(w+) 1b to find doubled words.

Ze streelde haar haar in in de auto.

With exceptions:

b(?!haarb)(w+) 1b

Ze streelde haar haar in in de auto.
You want to add brackets around step numbers:

This is step 5 from chapter 1. Continue with step 45 from page 15.

Use the regex ([sS]tep) (d+) to find all instances.

Replace it by 1 (2)

Or alternatively (?<=[sS]tep )d+ by (0)
Powerful, for individual text-based files


More powerful, batch operations, command line


No back references


RegEx Text File Filter


RegEx search


Very limited


Powerful, called GREP
Some people, when confronted with a problem, think
"I know, I'll use regular expressions.“
Now they have two problems.


-> Do not try to do everything in one uber-regex
-> Regular expressions are not parsers
http://www.regular-expressions.info

More Related Content

What's hot

Racket perusteet 3. Funktio
Racket perusteet 3. FunktioRacket perusteet 3. Funktio
Racket perusteet 3. FunktioTiina Partanen
 
Regular Expression
Regular ExpressionRegular Expression
Regular ExpressionLambert Lum
 
MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329Douglas Duncan
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regexJalpesh Vasa
 
Polymorphic Table Functions in 18c
Polymorphic Table Functions in 18cPolymorphic Table Functions in 18c
Polymorphic Table Functions in 18cAndrej Pashchenko
 
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in ScalaExploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in ScalaJorge Vásquez
 
Sql Objects And PL/SQL
Sql Objects And PL/SQLSql Objects And PL/SQL
Sql Objects And PL/SQLGary Myers
 
Introduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerIntroduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerMydbops
 
If You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongIf You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongMario Fusco
 
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB
 
MongoDB .local Toronto 2019: Tips and Tricks for Effective Indexing
MongoDB .local Toronto 2019: Tips and Tricks for Effective IndexingMongoDB .local Toronto 2019: Tips and Tricks for Effective Indexing
MongoDB .local Toronto 2019: Tips and Tricks for Effective IndexingMongoDB
 
정규표현식(Regular expressions)
정규표현식(Regular expressions)정규표현식(Regular expressions)
정규표현식(Regular expressions)Juhee Kim
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and FunctionsJussi Pohjolainen
 
Racket alkeet 1. Peruslaskut
Racket alkeet   1. PeruslaskutRacket alkeet   1. Peruslaskut
Racket alkeet 1. PeruslaskutTiina Partanen
 

What's hot (20)

Racket perusteet 3. Funktio
Racket perusteet 3. FunktioRacket perusteet 3. Funktio
Racket perusteet 3. Funktio
 
Regular Expression
Regular ExpressionRegular Expression
Regular Expression
 
MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329MongoDB and Indexes - MUG Denver - 20160329
MongoDB and Indexes - MUG Denver - 20160329
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regex
 
Expression trees
Expression treesExpression trees
Expression trees
 
Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
Polymorphic Table Functions in 18c
Polymorphic Table Functions in 18cPolymorphic Table Functions in 18c
Polymorphic Table Functions in 18c
 
Exploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in ScalaExploring ZIO Prelude: The game changer for typeclasses in Scala
Exploring ZIO Prelude: The game changer for typeclasses in Scala
 
Sql Objects And PL/SQL
Sql Objects And PL/SQLSql Objects And PL/SQL
Sql Objects And PL/SQL
 
Heap_Sort1.pptx
Heap_Sort1.pptxHeap_Sort1.pptx
Heap_Sort1.pptx
 
Introduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizerIntroduction to Mongodb execution plan and optimizer
Introduction to Mongodb execution plan and optimizer
 
If You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are WrongIf You Think You Can Stay Away from Functional Programming, You Are Wrong
If You Think You Can Stay Away from Functional Programming, You Are Wrong
 
Minimum spanning Tree
Minimum spanning TreeMinimum spanning Tree
Minimum spanning Tree
 
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDBMongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
MongoDB World 2019: Tips and Tricks++ for Querying and Indexing MongoDB
 
Arrays in php
Arrays in phpArrays in php
Arrays in php
 
MongoDB .local Toronto 2019: Tips and Tricks for Effective Indexing
MongoDB .local Toronto 2019: Tips and Tricks for Effective IndexingMongoDB .local Toronto 2019: Tips and Tricks for Effective Indexing
MongoDB .local Toronto 2019: Tips and Tricks for Effective Indexing
 
정규표현식(Regular expressions)
정규표현식(Regular expressions)정규표현식(Regular expressions)
정규표현식(Regular expressions)
 
JavaScript: Variables and Functions
JavaScript: Variables and FunctionsJavaScript: Variables and Functions
JavaScript: Variables and Functions
 
Shadows Effects in CSS
Shadows Effects in CSSShadows Effects in CSS
Shadows Effects in CSS
 
Racket alkeet 1. Peruslaskut
Racket alkeet   1. PeruslaskutRacket alkeet   1. Peruslaskut
Racket alkeet 1. Peruslaskut
 

Similar to An Introduction to Regular expressions

Similar to An Introduction to Regular expressions (20)

Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
Regular expressions quick reference
Regular expressions quick referenceRegular expressions quick reference
Regular expressions quick reference
 
Regex Intro
Regex IntroRegex Intro
Regex Intro
 
Regex Basics
Regex BasicsRegex Basics
Regex Basics
 
Eloquent Ruby chapter 4 - Find The Right String with Regular Expression
Eloquent Ruby chapter 4 - Find The Right String with Regular ExpressionEloquent Ruby chapter 4 - Find The Right String with Regular Expression
Eloquent Ruby chapter 4 - Find The Right String with Regular Expression
 
Introduction to Regular Expressions
Introduction to Regular ExpressionsIntroduction to Regular Expressions
Introduction to Regular Expressions
 
Regexps
RegexpsRegexps
Regexps
 
Looking for Patterns
Looking for PatternsLooking for Patterns
Looking for Patterns
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
FUNDAMENTALS OF REGULAR EXPRESSION (RegEX).pdf
FUNDAMENTALS OF REGULAR EXPRESSION (RegEX).pdfFUNDAMENTALS OF REGULAR EXPRESSION (RegEX).pdf
FUNDAMENTALS OF REGULAR EXPRESSION (RegEX).pdf
 
Python (regular expression)
Python (regular expression)Python (regular expression)
Python (regular expression)
 
test vedio
test vediotest vedio
test vedio
 
qwdeqwe
qwdeqweqwdeqwe
qwdeqwe
 
Added to test pdf
Added to test pdf Added to test pdf
Added to test pdf
 
added for test
added for test added for test
added for test
 
ganesh testing
ganesh testing ganesh testing
ganesh testing
 
now its pdf
now its pdfnow its pdf
now its pdf
 
fghfghf
fghfghffghfghf
fghfghf
 
The hindu
The hinduThe hindu
The hindu
 
Video added by Normal user
Video added by Normal user Video added by Normal user
Video added by Normal user
 

More from Yamagata Europe

Machine Translation Quality Metrics
Machine Translation Quality MetricsMachine Translation Quality Metrics
Machine Translation Quality MetricsYamagata Europe
 
A standards driven workflow for Sitecore localization
A standards driven workflow for Sitecore localizationA standards driven workflow for Sitecore localization
A standards driven workflow for Sitecore localizationYamagata Europe
 
DITA translatability best practices
DITA translatability best practicesDITA translatability best practices
DITA translatability best practicesYamagata Europe
 

More from Yamagata Europe (8)

Smart QA
Smart QASmart QA
Smart QA
 
Machine Translation Quality Metrics
Machine Translation Quality MetricsMachine Translation Quality Metrics
Machine Translation Quality Metrics
 
XML and Localization
XML and LocalizationXML and Localization
XML and Localization
 
A standards driven workflow for Sitecore localization
A standards driven workflow for Sitecore localizationA standards driven workflow for Sitecore localization
A standards driven workflow for Sitecore localization
 
QA Distiller
QA DistillerQA Distiller
QA Distiller
 
SnellSpell
SnellSpellSnellSpell
SnellSpell
 
Machine translation
Machine translationMachine translation
Machine translation
 
DITA translatability best practices
DITA translatability best practicesDITA translatability best practices
DITA translatability best practices
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Recently uploaded (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

An Introduction to Regular expressions

  • 1.
  • 2. And are they contagious?
  • 3. There is no official standard for regular expressions, so no real definition. Simply put, you can call it a text pattern to search and/or Easy peasy! replace text.
  • 5. Back to grammar school!
  • 6. a matches any occurrence of that character Jack is a boy. cat matches About cats and dogs.
  • 7. square bracket [ backslash caret ^ dollar sign $ period or dot . vertical bar or pipe symbol | question mark ? asterisk or star * plus sign + opening round bracket ( closing round bracket ) opening curley bracket {
  • 8. Special characters are reserved for special use. They need to be preceded by a backslash if you want to match them as literal characters. This is called escaping. If you want to match 1+1=2 the correct regex is 1+1=2
  • 9. tab t carriage return r line feed n beginning of line ^ end of line $ word boundary b
  • 10. If regular expressions are Unicode enabled you can search any character using the Unicode value. Depending on syntax: u0000 or x{0000} Hard space u00A0 or x{00A0} ® sign u00AE or x{00AE} ...
  • 11. Quantifiers allow you to specify the number of occurrences to match against X? X, once or not at all X* X, zero or more times X+ X, one or more times X{n} X, exactly n times X{n,} X, at least n times X{n,m} X, at least n but not more than m times
  • 12. The regex colou?r matches both colour and color. You can also group items together by using brackets: Nov(ember)? will match Nov and November The regex a+ is the same as a{1,} and matches a or aaaaa The regex w{3} matches www.qa-distiller.com
  • 13. Simply place the characters you want to match between square brackets. If you want to match an a or an e, use [ae]. You could use this in gr[ae]y to match either gray or grey. A character class matches only a single character, the order is not important You can also use ranges. [0-9] matches a single digit between 0 and 9
  • 14. Typing a caret after the opening square bracket will negate the character class. q[^u] means: "a q followed by a character that is not a u". It will match the q and the space after the q in Iraq is a political quagmire. but not the q of quagmire because it is followed by the letter u
  • 15. d digit [0-9] w word character [A-Za-z0-9_ ] s whitespace [ trn] Negated versions D not a digit [^d] W not a word character [^w] S not a whitespace [^s]
  • 16. The dot matches a single character, without caring what that character is. The regex e. matches Houston, we have a problem
  • 17. If you want to search for cat or dog, separate both options with a vertical bar or pipe symbol: cat|dog matches Are you sure you want a cat? You can add more options like this: green|black|yellow|white
  • 18. Which of the following completely matches regex a(ab)*a 1) abababa 2) aaba 3) aabbaa 4) aba 5) aabababa
  • 19. Which of the following completely matches regex ab+c? 1) abc 2) ac 3) abbb 4) bbc 5) abbcc
  • 20. Which of the following completely matches regex a.[bc]+ 1) abc 2) abbbbbbbb 3) azc 4) abcbcbcbc 5) ac 6) asccbbbbcbcccc
  • 21. Which of the following completely matches regex (very )+(fat )?(tall|ugly) man 1) very fat man 2) fat tall man 3) very very fat ugly man 4) very very very tall man
  • 23. Positive lookahead: X(?=X) Match something that is followed by something Yamagata(?= Europe) matches Yamagata Europe, Yamagata Intech Solutions Negative lookahead: X(?!X) Match something that is not followed by something Yamagata(?! Europe) matches Yamagata Europe, Yamagata Intech Solutions
  • 24. Positive lookbehind: (?<=X)X Match something following something (?<=a)b matches thingamabob Negative lookbehind: (?<!X)X Match something not following something (?<!a)b matches thingamabob
  • 25. Round brackets create a backreference. You can use the backreference with a backslash + the number of the backreference. The regex Java(script) is a 1ing language matches Javascript is a scripting language The regex (Java)(script) is a 2ing language that is not the same as 1 matches Javascript is a scripting language that is not the same as Java
  • 26. Use the regex b(w+) 1b to find doubled words. Ze streelde haar haar in in de auto. With exceptions: b(?!haarb)(w+) 1b Ze streelde haar haar in in de auto.
  • 27. You want to add brackets around step numbers: This is step 5 from chapter 1. Continue with step 45 from page 15. Use the regex ([sS]tep) (d+) to find all instances. Replace it by 1 (2) Or alternatively (?<=[sS]tep )d+ by (0)
  • 28. Powerful, for individual text-based files More powerful, batch operations, command line No back references RegEx Text File Filter RegEx search Very limited Powerful, called GREP
  • 29. Some people, when confronted with a problem, think "I know, I'll use regular expressions.“ Now they have two problems. -> Do not try to do everything in one uber-regex -> Regular expressions are not parsers