SlideShare uma empresa Scribd logo
1 de 93
Baixar para ler offline
Regular Expressions:
JavaScript And Beyond

Max Shirshin

Frontend Team Lead
deltamethod
Introduction
Types of regular expressions
• POSIX (BRE, ERE)
• PCRE = Perl-Compatible Regular Expressions
From the JavaScript language specification:

"The form and functionality of regular expressions
is modelled after the regular expression facility in
the Perl 5 programming language".

4
JS syntax (overview only)
var re = /^foo/;
 
 

 
 

5
JS syntax (overview only)
var re = /^foo/;
// boolean
re.test('string');
 
 

6
JS syntax (overview only)
var re = /^foo/;
// boolean
re.test('string');
// null or Array
re.exec('string');

7
Regular expressions consist of...
●

Tokens

— common characters
— special characters (metacharacters)
●

Operations

— quantification
— enumeration
— grouping
8
Tokens and metacharacters
Any character
/./.test('foo');

// true

/./.test('rn')

// false

 
 
 
 

10
Any character
/./.test('foo');

// true

/./.test('rn')

// false

What do you need instead:
/[sS]/ for JavaScript
or
/./s (works in Perl/PCRE, not in JS)

11
String boundaries
>>> /^something$/.test('something')
true
 
 

 

 

12
String boundaries
>>> /^something$/.test('something')
true
>>> /^something$/.test('somethingnbad')
false
 

 

13
String boundaries
>>> /^something$/.test('something')
true
>>> /^something$/.test('somethingnbad')
false
>>> /^something$/m.test('somethingnbad')
true

14
Word boundaries
>>> /ba/.test('alabama)
true
 
 

 
 

 
 

15
Word boundaries
>>> /ba/.test('alabama)
true
>>> /ab/.test('alabama')
true
 
 

 
 

16
Word boundaries
>>> /ba/.test('alabama)
true
>>> /ab/.test('alabama')
true
>>> /ab/.test('naïve')
true
 
 

17
Word boundaries
>>> /ba/.test('alabama)
true
>>> /ab/.test('alabama')
true
>>> /ab/.test('naïve')
true
not a word boundary
/Ba/.test('alabama');
18
Character classes
Whitespace
/s/ (inverted version: /S/)
 
 

 
 

 
 

20

 
Whitespace
/s/ (inverted version: /S/)
FF:
t
u00a0
u2003
u2009

n
v
u1680 u180e
u2004 u2005
u200a u2028

Chrome, IE 9:
as in FF plus ufeff

f
r
u2000 u2001
u2006 u2007
u2029 u202f

IE 7, 8 :-(
only:
t n v f r u0020
21

u0020
u2002
u2008
u205f u3000
Alphanumeric characters
/d/ ~ digits from 0 to 9
/w/ ~ Latin letters, digits, underscore
Does not work for Cyrillic, Greek etc.

Inverted forms:
/D/ ~ anything but digits
/W/ ~ anything but alphanumeric characters

22
Custom character classes
Example:
/[abc123]/
 
 

 
 

 

23
Custom character classes
Example:
/[abc123]/
Metacharacters and ranges supported:
/[A-Fd]/
 
 

 

24
Custom character classes
Example:
/[abc123]/
Metacharacters and ranges supported:
/[A-Fd]/
More than one range is okay:
/[a-cG-M0-7]/
 

25
Custom character classes
Example:
/[abc123]/
Metacharacters and ranges supported:
/[A-Fd]/
More than one range is okay:
/[a-cG-M0-7]/
IMPORTANT: ranges come from Unicode, not
from national alphabets!
26
Custom character classes
"dot" means just dot!
/[.]/.test('anything') // false
 
 

27
Custom character classes
"dot" means just dot!
/[.]/.test('anything') // false
adding  ] /[]-]/

28
Inverted character classes
anything except a, b, c:
/[^abc]/
^ as a character:
/[abc^]/

29
Inverted character classes
/[^]/
matches ANY character;
a nice alternative to /[sS]/

30
Inverted character classes
/[^]/
matches ANY character;
could be
a nice alternative to /[sS]/

31
Inverted character classes
/[^]/
matches ANY character;
could be
a nice alternative to /[sS]/
Chrome, FF:
>>> /([^])/.exec('a');
['a', 'a']
32
Inverted character classes
/[^]/
matches ANY character;
could be
a nice alternative to /[sS]/
IE:
>>> /([^])/.exec('a');
['a', '']
33
Inverted character classes
/[^]/
matches ANY character;
could be
a nice alternative to /[sS]/
IE:
>>> /([sS])/.exec('a');
['a', 'a']
34
Quantifiers
Zero or more, one or more
/bo*/.test('b') // true
 

 

36
Zero or more, one or more
/bo*/.test('b') // true
/.*/.test('')
 

37

// true
Zero or more, one or more
/bo*/.test('b') // true
/.*/.test('')

// true

/bo+/.test('b') // false

38
Zero or one

/colou?r/.test('color');
/colou?r/.test('colour');

39
How many?
/bo{7}/
 

 

 
 

40

exactly 7
How many?
/bo{7}/

exactly 7

/bo{2,5}/

from 2 to 5, x < y

 

 
 

41
How many?
/bo{7}/

exactly 7

/bo{2,5}/

from 2 to 5, x < y

/bo{5,}/

5 or more

 
 

42
How many?
/bo{7}/

exactly 7

/bo{2,5}/

from 2 to 5, x < y

/bo{5,}/

5 or more

This does not work in JS:
/b{,5}/.test('bbbbb')
43
Greedy quantifiers
var r = /a+/.exec('aaaaa');
 
 

44
Greedy quantifiers
var r = /a+/.exec('aaaaa');
>>> r[0]
 

45
Greedy quantifiers
var r = /a+/.exec('aaaaa');
>>> r[0]
"aaaaa"

46
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
 
 

 
 
 

47
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
>>> r[0]
 

 
 
 

48
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
>>> r[0]
"a"
 
 
 

49
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
>>> r[0]
"a"
r = /a*?/.exec('aaaaa');
 
 

50
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
>>> r[0]
"a"
r = /a*?/.exec('aaaaa');
>>> r[0]
 

51
Lazy quantifiers
var r = /a+?/.exec('aaaaa');
>>> r[0]
"a"
r = /a*?/.exec('aaaaa');
>>> r[0]
""
52
Groups
Groups
capturing
/(boo)/.test("boo");
 
 

54
Groups
capturing
/(boo)/.test("boo");
non-capturing
/(?:boo)/.test("boo");

55
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
 
 
 
 
 

 
 
 
 

56
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
>>> RegExp.$1
"bo"
 
 
 

 
 
 
 

57
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
>>> RegExp.$1
"bo"
>>> RegExp.$2
"b"
 

 
 
 
 

58
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
>>> RegExp.$1
"bo"
>>> RegExp.$2
"b"
>>> RegExp.$9
""
 
 
 
 

59
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
>>> RegExp.$1
"bo"
>>> RegExp.$2
"b"
>>> RegExp.$9
""
>>> RegExp.$10
undefined
 
 

60
Grouping and the RegExp constructor
var result = /(bo)o+(b)/.exec('the booooob');
>>> RegExp.$1
"bo"
>>> RegExp.$2
"b"
>>> RegExp.$9
""
>>> RegExp.$10
undefined
>>> RegExp.$0
undefined
61
Numbering of capturing groups
/((foo) (b(a)r))/
 

 
 
 
62
Numbering of capturing groups
/((foo) (b(a)r))/
$1 (
 
 
 

63

)

foo bar
Numbering of capturing groups
/((foo) (b(a)r))/
$1 (
$2 (
 
 

64

)
)

foo bar
foo
Numbering of capturing groups
/((foo) (b(a)r))/
$1 (
$2 (
$3
 

65

)
)
(

)

foo bar
foo
bar
Numbering of capturing groups
/((foo) (b(a)r))/
$1 (
$2 (
$3
$4
66

)
)
(

)
( )

foo bar
foo
bar
a
Lookahead
var r = /best(?= match)/.exec('best match');
 
 

 
 

 
 

67
Lookahead
var r = /best(?= match)/.exec('best match');
>>> !!r
true
 
 

 
 

68
Lookahead
var r = /best(?= match)/.exec('best match');
>>> !!r
true
>>> r[0]
"best"
 
 

69
Lookahead
var r = /best(?= match)/.exec('best match');
>>> !!r
true
>>> r[0]
"best"
>>> /best(?! match)/.test('best match')
false

70
Lookbehind
NOT supported in JavaScript at all

/(?<=text)match/
positive lookbehind

/(?<!text)match/
negative lookbehind

71
Enumerations
Logical "or"
/red|green|blue light/
/(red|green|blue) light/
>>> /var a(;|$)/.test('var a')
true

73
Backreferences
true
/(red|green) apple is 1/.test('red apple is red')
true
/(red|green) apple is 1/.test('green apple is green')

74
Alternative character
represenations
Representing a character
x09 === t (not Unicode but ASCII/ANSI)
u20AC === € (in Unicode)
 

 
 

 
 

76
Representing a character
x09 === t (not Unicode but ASCII/ANSI)
u20AC === € (in Unicode)
backslash takes away special character
meaning:
/()/.test('()')
/n/.test('n')
 
 

77

// true
// true
Representing a character
x09 === t (not Unicode but ASCII/ANSI)
u20AC === € (in Unicode)
backslash takes away special character
meaning:
/()/.test('()')
/n/.test('n')

// true
// true

...or vice versa!
/f/.test('f') // false!
78
Flags
Regular expression flags
g i m s x y
 
 
 

 
 
 

80
Regular expression flags
g i m s x y
global match
 
 

 
 
 

81
Regular expression flags
g i m s x y
global match
ignore case
 

 
 
 

82
Regular expression flags
g i m s x y
global match
ignore case
multiline matching for ^ and $
 
 
 

83
Regular expression flags
g i m s x y
global match
ignore case
multiline matching for ^ and $
JavaScript does NOT provide support for:
string as single line
extend pattern

84
Regular expression flags
g i m s x y
global match
ignore case
multiline matching for ^ and $
Mozilla-only, non-standard:
sticky
Match only from the .lastIndex index (a
regexp instance property). Thus, ^ can
match at a predefined position.
85
Alternative syntax for flags
/(?i)foo/
/(?i-m)bar$/
/(?i-sm).x$/
/(?i)foo(?-i)bar/
Some implementations do NOT support flag
switching on-the-go.
In JS, flags are set for the whole regexp
instance and you can't change them.
86
RegExp in JavaScript
Methods
RegExp instances:
/regexp/.exec('string')
null or array ['whole match', $1, $2, ...]
/regexp/.test('string')
false or true
String instances:
'str'.match(/regexp/)
'str'.match('w{1,3}')
- same as /regexp/.exec if no 'g' flag used;
- array of all matches if 'g' flag used (internal
capturing groups ignored)
'str'.search(/regexp/)
'str'.search('w{1,3}')
first match index, or -1

88
Methods
String instances:
'str'.replace(/old/, 'new');
WARNING: special magic supported in the replacement string:
$$
inserts a dollar sign "$"
$&
substring that matches the regexp
$`
substring before $&
$'
substring after $&
$1, $2, $3 etc.:
string that matches n-th capturing group
'str'.replace(/(r)(e)gexp/g,
function(matched, $1, $2, offset, sourceString) {
// what should replace the matched part on this iteration?
return 'replacement';
});

89
RegExp injection
// BAD CODE
var re = new RegExp('^' + userInput + '$');
// ...
var userInput = '[abc]'; // oops!

// GOOD, DO IT AT HOME
RegExp.escape = function(text) {
return text.replace(/[-[]{}()*+?.,^$|#s]/g, "$&");
};
var re = new RegExp('^' + RegExp.escape(userInput) + '$');

90
Recommended reading
Online, just google it:
MDN Guide on Regular Expressions
The Book:

Mastering Regular Expressions
O'Reilly Media
Thank you!

Mais conteúdo relacionado

Mais procurados (18)

C program to implement linked list using array abstract data type
C program to implement linked list using array abstract data typeC program to implement linked list using array abstract data type
C program to implement linked list using array abstract data type
 
Beware: Sharp Tools
Beware: Sharp ToolsBeware: Sharp Tools
Beware: Sharp Tools
 
PHP Strings and Patterns
PHP Strings and PatternsPHP Strings and Patterns
PHP Strings and Patterns
 
Data Structure - 2nd Study
Data Structure - 2nd StudyData Structure - 2nd Study
Data Structure - 2nd Study
 
What's New in Perl? v5.10 - v5.16
What's New in Perl?  v5.10 - v5.16What's New in Perl?  v5.10 - v5.16
What's New in Perl? v5.10 - v5.16
 
Programming in perl style
Programming in perl styleProgramming in perl style
Programming in perl style
 
Implementing string
Implementing stringImplementing string
Implementing string
 
ES6: The future is now
ES6: The future is nowES6: The future is now
ES6: The future is now
 
There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty it
 
C lab programs
C lab programsC lab programs
C lab programs
 
Cpp tutorial
Cpp tutorialCpp tutorial
Cpp tutorial
 
Functional pe(a)rls: Huey's zipper
Functional pe(a)rls: Huey's zipperFunctional pe(a)rls: Huey's zipper
Functional pe(a)rls: Huey's zipper
 
C++ programs
C++ programsC++ programs
C++ programs
 
Vcs23
Vcs23Vcs23
Vcs23
 
Final ds record
Final ds recordFinal ds record
Final ds record
 
Intoduction to php strings
Intoduction to php  stringsIntoduction to php  strings
Intoduction to php strings
 
Php Basic
Php BasicPhp Basic
Php Basic
 
Cquestions
Cquestions Cquestions
Cquestions
 

Semelhante a Regular Expressions: JavaScript And Beyond

Regular expressions
Regular expressionsRegular expressions
Regular expressionskeeyre
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Aslak Hellesøy
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Aslak Hellesøy
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Aslak Hellesøy
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to PerlSway Wang
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions WebStackAcademy
 
Unicode Regular Expressions
Unicode Regular ExpressionsUnicode Regular Expressions
Unicode Regular ExpressionsNova Patch
 
Coffee 'n code: Regexes
Coffee 'n code: RegexesCoffee 'n code: Regexes
Coffee 'n code: RegexesPhil Ewels
 
Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)David Atchley
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In PerlKang-min Liu
 
Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Wilson Su
 
Ruby on Rails Intro
Ruby on Rails IntroRuby on Rails Intro
Ruby on Rails Introzhang tao
 
How to check valid Email? Find using regex.
How to check valid Email? Find using regex.How to check valid Email? Find using regex.
How to check valid Email? Find using regex.Poznań Ruby User Group
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regexJalpesh Vasa
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Languagezone
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoobirbal
 

Semelhante a Regular Expressions: JavaScript And Beyond (20)

Regular expressions
Regular expressionsRegular expressions
Regular expressions
 
Cleancode
CleancodeCleancode
Cleancode
 
Perl Presentation
Perl PresentationPerl Presentation
Perl Presentation
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009
 
Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009Ruby presentasjon på NTNU 22 april 2009
Ruby presentasjon på NTNU 22 april 2009
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 
Unicode Regular Expressions
Unicode Regular ExpressionsUnicode Regular Expressions
Unicode Regular Expressions
 
Coffee 'n code: Regexes
Coffee 'n code: RegexesCoffee 'n code: Regexes
Coffee 'n code: Regexes
 
Regular expression for everyone
Regular expression for everyoneRegular expression for everyone
Regular expression for everyone
 
Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In Perl
 
Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8Practical JavaScript Programming - Session 6/8
Practical JavaScript Programming - Session 6/8
 
Groovy
GroovyGroovy
Groovy
 
Ruby on Rails Intro
Ruby on Rails IntroRuby on Rails Intro
Ruby on Rails Intro
 
How to check valid Email? Find using regex.
How to check valid Email? Find using regex.How to check valid Email? Find using regex.
How to check valid Email? Find using regex.
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regex
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Language
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoo
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Último (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Regular Expressions: JavaScript And Beyond