Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
No Match

r"
"
gm

Test String

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "<Buyer>[\\s\\S]+?<UserID>([^<]+)<\\/UserID>"; final String string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" + " <soapenv:Header>\n" + " <ebl:RequesterCredentials soapenv:mustUnderstand=\"0\" xmlns:ebl=\"urn:ebay:apis:eBLBaseComponents\" xmlns:ns=\"urn:ebay:apis:eBLBaseComponents\">\n" + " <ebl:NotificationSignature xmlns:ebl=\"urn:ebay:apis:eBLBaseComponents\">eVkp8yKqOGGl6b03ezOglA==</ebl:NotificationSignature>\n" + " </ebl:RequesterCredentials>\n" + " </soapenv:Header>\n" + " <soapenv:Body>\n" + " <GetItemTransactionsResponse xmlns=\"urn:ebay:apis:eBLBaseComponents\">\n" + " <Timestamp>2018-11-06T07:14:02.377Z</Timestamp>\n" + " <Ack>Success</Ack>\n" + " <CorrelationID>1495072616792</CorrelationID>\n" + " <Version>1083</Version>\n" + " <Build>E1083_INTL_APIXO_18856824_R1</Build>\n" + " <NotificationEventName>AuctionCheckoutComplete</NotificationEventName>\n" + " <RecipientUserID>oz.sunshine</RecipientUserID>\n" + " <EIASToken>nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6AElYKhC5eKqQWdj6x9nY+seQ==</EIASToken>\n" + " <PaginationResult>\n" + " <TotalNumberOfPages>1</TotalNumberOfPages>\n" + " <TotalNumberOfEntries>1</TotalNumberOfEntries>\n" + " </PaginationResult>\n" + " <HasMoreTransactions>false</HasMoreTransactions>\n" + " <TransactionsPerPage>100</TransactionsPerPage>\n" + " <PageNumber>1</PageNumber>\n" + " <ReturnedTransactionCountActual>1</ReturnedTransactionCountActual>\n" + " <Item>\n" + " <ApplicationData>ic6d9i844054605431312608388a</ApplicationData>\n" + " <AutoPay>false</AutoPay>\n" + " <BuyItNowPrice currencyID=\"AUD\">0.0</BuyItNowPrice>\n" + " <Currency>AUD</Currency>\n" + " <ItemID>222203266767</ItemID>\n" + " <ListingDetails>\n" + " <StartTime>2016-07-29T13:10:54.000Z</StartTime>\n" + " <EndTime>2018-11-16T13:10:54.000Z</EndTime>\n" + " <ViewItemURL>http://cgi.ebay.com.au/ws/eBayISAPI.dll?ViewItem&amp;Item=222203266767</ViewItemURL>\n" + " <ViewItemURLForNaturalSearch>http://cgi.ebay.com.au/2018-NEW-Toilet-Bidet-Seat-Spray-Hygeian-Water-Clean-Unisex-Bathroom-Shattaf-AU?item=222203266767&amp;category=0&amp;cmd=ViewItem</ViewItemURLForNaturalSearch>\n" + " </ListingDetails>\n" + " <ListingType>FixedPriceItem</ListingType>\n" + " <PaymentMethods>MoneyXferAccepted</PaymentMethods>\n" + " <PaymentMethods>PayPal</PaymentMethods>\n" + " <PaymentMethods>VisaMC</PaymentMethods>\n" + " <PrimaryCategory>\n" + " <CategoryID>101405</CategoryID>\n" + " </PrimaryCategory>\n" + " <PrivateListing>true</PrivateListing>\n" + " <Quantity>2142</Quantity>\n" + " <SecondaryCategory>\n" + " <CategoryID>0</CategoryID>\n" + " </SecondaryCategory>\n" + " <Seller>\n" + " <AboutMePage>false</AboutMePage>\n" + " <EIASToken>nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6AElYKhC5eKqQWdj6x9nY+seQ==</EIASToken>\n" + " <Email>oz-sunshine@elifeonline.com.au</Email>\n" + " <FeedbackScore>17305</FeedbackScore>\n" + " <PositiveFeedbackPercent>99.5</PositiveFeedbackPercent>\n" + " <FeedbackPrivate>false</FeedbackPrivate>\n" + " <FeedbackRatingStar>YellowShooting</FeedbackRatingStar>\n" + " <IDVerified>false</IDVerified>\n" + " <eBayGoodStanding>true</eBayGoodStanding>\n" + " <NewUser>false</NewUser>\n" + " <RegistrationDate>2011-02-27T09:05:29.000Z</RegistrationDate>\n" + " <Site>Australia</Site>\n" + " <Status>Confirmed</Status>\n" + " <UserID>oz.sunshine</UserID>\n" + " <UserIDChanged>false</UserIDChanged>\n" + " <UserIDLastChanged>2016-03-01T00:38:25.000Z</UserIDLastChanged>\n" + " <VATStatus>VATExempt</VATStatus>\n" + " <SellerInfo>\n" + " <AllowPaymentEdit>true</AllowPaymentEdit>\n" + " <CheckoutEnabled>true</CheckoutEnabled>\n" + " <CIPBankAccountStored>false</CIPBankAccountStored>\n" + " <GoodStanding>true</GoodStanding>\n" + " <LiveAuctionAuthorized>false</LiveAuctionAuthorized>\n" + " <MerchandizingPref>OptIn</MerchandizingPref>\n" + " <QualifiesForB2BVAT>false</QualifiesForB2BVAT>\n" + " <StoreOwner>true</StoreOwner>\n" + " <StoreURL>http://stores.ebay.com.au/shopelife</StoreURL>\n" + " <SafePaymentExempt>false</SafePaymentExempt>\n" + " <TopRatedSeller>true</TopRatedSeller>\n" + " </SellerInfo>\n" + " </Seller>\n" + " <SellingStatus>\n" + " <ConvertedCurrentPrice currencyID=\"AUD\">24.74</ConvertedCurrentPrice>\n" + " <CurrentPrice currencyID=\"AUD\">24.74</CurrentPrice>\n" + " <QuantitySold>2074</QuantitySold>\n" + " <ListingStatus>Active</ListingStatus>\n" + " </SellingStatus>\n" + " <Site>Australia</Site>\n" + " <StartPrice currencyID=\"AUD\">24.74</StartPrice>\n" + " <Title>2018 NEW Toilet Bidet Seat Spray Hygeian Water Clean Unisex Bathroom Shattaf AU</Title>\n" + " <GetItFast>false</GetItFast>\n" + " <SKU>FAZ0181008AU</SKU>\n" + " <IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled>\n" + " <ConditionID>1000</ConditionID>\n" + " <ConditionDisplayName>Brand New</ConditionDisplayName>\n" + " </Item>\n" + " <TransactionArray>\n" + " <Transaction>\n" + " <AmountPaid currencyID=\"AUD\">26.74</AmountPaid>\n" + " <AdjustmentAmount currencyID=\"AUD\">0.0</AdjustmentAmount>\n" + " <ConvertedAdjustmentAmount currencyID=\"AUD\">0.0</ConvertedAdjustmentAmount>\n" + " <Buyer>\n" + " <AboutMePage>false</AboutMePage>\n" + " <EIASToken>nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wNloajDJCLqQ6dj6x9nY+seQ==</EIASToken>\n" + " <Email>rany_morcos@hotmail.com</Email>\n" + " <FeedbackScore>72</FeedbackScore>\n" + " <PositiveFeedbackPercent>100.0</PositiveFeedbackPercent>\n" + " <FeedbackPrivate>false</FeedbackPrivate>\n" + " <FeedbackRatingStar>Blue</FeedbackRatingStar>\n" + " <IDVerified>false</IDVerified>\n" + " <eBayGoodStanding>true</eBayGoodStanding>\n" + " <NewUser>false</NewUser>\n" + " <RegistrationDate>2009-09-15T09:57:47.000Z</RegistrationDate>\n" + " <Site>Australia</Site>\n" + " <Status>Confirmed</Status>\n" + " <UserID>ranoon1</UserID>\n" + " <UserIDChanged>false</UserIDChanged>\n" + " <UserIDLastChanged>2009-09-15T09:57:46.000Z</UserIDLastChanged>\n" + " <VATStatus>VATTax</VATStatus>\n" + " <BuyerInfo>\n" + " <ShippingAddress>\n" + " <Name>Rany Morcos</Name>\n" + " <Street1>6/303 maroondah highway</Street1>\n" + " <CityName>Croydon North</CityName>\n" + " <StateOrProvince>Victoria</StateOrProvince>\n" + " <Country>AU</Country>\n" + " <CountryName>Australia</CountryName>\n" + " <Phone>0450076244</Phone>\n" + " <PostalCode>3136</PostalCode>\n" + " <AddressID>6616753013013</AddressID>\n" + " <AddressOwner>eBay</AddressOwner>\n" + " <AddressUsage>DefaultShipping</AddressUsage>\n" + " </ShippingAddress>\n" + " </BuyerInfo>\n" + " <UserAnonymized>false</UserAnonymized>\n" + " <StaticAlias>ranoon_dy3756phf@members.ebay.com.au</StaticAlias>\n" + " </Buyer>\n" + " <ShippingDetails>\n" + " <ChangePaymentInstructions>true</ChangePaymentInstructions>\n" + " <PaymentEdited>true</PaymentEdited>\n" + " <PaymentInstructions>Methods of payment we accept:1. All major Credit Cards through Paypal.</PaymentInstructions>\n" + " <SalesTax>\n" + " <SalesTaxPercent>0.0</SalesTaxPercent>\n" + " <ShippingIncludedInTax>false</ShippingIncludedInTax>\n" + " <SalesTaxAmount currencyID=\"AUD\">0.0</SalesTaxAmount>\n" + " </SalesTax>\n" + " <ShippingServiceOptions>\n" + " <ShippingService>AU_Regular</ShippingService>\n" + " <ShippingServiceCost currencyID=\"AUD\">0.0</ShippingServiceCost>\n" + " <ShippingServiceAdditionalCost currencyID=\"AUD\">0.0</ShippingServiceAdditionalCost>\n" + " <ShippingServicePriority>1</ShippingServicePriority>\n" + " <ExpeditedService>false</ExpeditedService>\n" + " <ShippingTimeMin>2</ShippingTimeMin>\n" + " <ShippingTimeMax>6</ShippingTimeMax>\n" + " </ShippingServiceOptions>\n" + " <ShippingServiceOptions>\n" + " <ShippingService>AU_RegularParcelWithTracking</ShippingService>\n" + " <ShippingServiceCost currencyID=\"AUD\">2.0</ShippingServiceCost>\n" + " <ShippingServiceAdditionalCost currencyID=\"AUD\">0.0</ShippingServiceAdditionalCost>\n" + " <ShippingServicePriority>2</ShippingServicePriority>\n" + " <ExpeditedService>false</ExpeditedService>\n" + " <ShippingTimeMin>2</ShippingTimeMin>\n" + " <ShippingTimeMax>6</ShippingTimeMax>\n" + " </ShippingServiceOptions>\n" + " <ShippingServiceOptions>\n" + " <ShippingService>AU_Express</ShippingService>\n" + " <ShippingServiceCost currencyID=\"AUD\">100.0</ShippingServiceCost>\n" + " <ShippingServiceAdditionalCost currencyID=\"AUD\">0.0</ShippingServiceAdditionalCost>\n" + " <ShippingServicePriority>3</ShippingServicePriority>\n" + " <ExpeditedService>true</ExpeditedService>\n" + " <ShippingTimeMin>1</ShippingTimeMin>\n" + " <ShippingTimeMax>3</ShippingTimeMax>\n" + " </ShippingServiceOptions>\n" + " <InternationalShippingServiceOption>\n" + " <ShippingService>AU_AirMailInternational</ShippingService>\n" + " <ShippingServiceCost currencyID=\"AUD\">25.0</ShippingServiceCost>\n" + " <ShippingServiceAdditionalCost currencyID=\"AUD\">0.0</ShippingServiceAdditionalCost>\n" + " <ShippingServicePriority>1</ShippingServicePriority>\n" + " <ShipToLocation>NZ</ShipToLocation>\n" + " </InternationalShippingServiceOption>\n" + " <ShippingType>Flat</ShippingType>\n" + " <SellingManagerSalesRecordNumber>59381</SellingManagerSalesRecordNumber>\n" + " <ThirdPartyCheckout>false</ThirdPartyCheckout>\n" + " <TaxTable/>\n" + " <GetItFast>false</GetItFast>\n" + " <ExcludeShipToLocation>Africa</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>Asia</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>Central America and Caribbean</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>Europe</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>Middle East</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>North America</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>Southeast Asia</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>South America</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>AS</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>CK</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>FJ</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>PF</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>GU</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>KI</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>MH</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>FM</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>NR</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>NC</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>NU</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>PW</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>PG</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>SB</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>TO</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>TV</ExcludeShipToLocation>\n" + " <ExcludeShipToLocation>VU</ExcludeShipToLocation>\n" + " </ShippingDetails>\n" + " <ConvertedAmountPaid currencyID=\"AUD\">26.74</ConvertedAmountPaid>\n" + " <ConvertedTransactionPrice currencyID=\"AUD\">24.74</ConvertedTransactionPrice>\n" + " <CreatedDate>2018-11-06T07:13:02.000Z</CreatedDate>\n" + " <DepositType>None</DepositType>\n" + " <QuantityPurchased>1</QuantityPurchased>\n" + " <Status>\n" + " <eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>\n" + " <CheckoutStatus>CheckoutComplete</CheckoutStatus>\n" + " <LastTimeModified>2018-11-06T07:14:01.000Z</LastTimeModified>\n" + " <PaymentMethodUsed>PayPal</PaymentMethodUsed>\n" + " <CompleteStatus>Complete</CompleteStatus>\n" + " <BuyerSelectedShipping>true</BuyerSelectedShipping>\n" + " <PaymentHoldStatus>None</PaymentHoldStatus>\n" + " <IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled>\n" + " </Status>\n" + " <TransactionID>2160627739012</TransactionID>\n" + " <TransactionPrice currencyID=\"AUD\">24.74</TransactionPrice>\n" + " <BestOfferSale>false</BestOfferSale>\n" + " <ExternalTransaction>\n" + " <ExternalTransactionID>7E2132560L3706829</ExternalTransactionID>\n" + " <ExternalTransactionTime>2018-11-06T07:14:00.000Z</ExternalTransactionTime>\n" + " <FeeOrCreditAmount currencyID=\"AUD\">0.59</FeeOrCreditAmount>\n" + " <PaymentOrRefundAmount currencyID=\"AUD\">26.74</PaymentOrRefundAmount>\n" + " <ExternalTransactionStatus>Succeeded</ExternalTransactionStatus>\n" + " </ExternalTransaction>\n" + " <ShippingServiceSelected>\n" + " <ShippingService>AU_RegularParcelWithTracking</ShippingService>\n" + " <ShippingServiceCost currencyID=\"AUD\">2.0</ShippingServiceCost>\n" + " </ShippingServiceSelected>\n" + " <BuyerMessage>oz-sunshine@elifeonline.com.au</BuyerMessage>\n" + " <PaidTime>2018-11-06T07:14:01.000Z</PaidTime>\n" + " <ContainingOrder>\n" + " <OrderID>222203266767-2160627739012</OrderID>\n" + " <OrderStatus>Completed</OrderStatus>\n" + " </ContainingOrder>\n" + " <FinalValueFee currencyID=\"AUD\">1.58</FinalValueFee>\n" + " <TransactionSiteID>Australia</TransactionSiteID>\n" + " <Platform>eBay</Platform>\n" + " <PayPalEmailAddress>support@elifeonline.com.au</PayPalEmailAddress>\n" + " <BuyerGuaranteePrice currencyID=\"AUD\">20000.0</BuyerGuaranteePrice>\n" + " <ActualShippingCost currencyID=\"AUD\">2.0</ActualShippingCost>\n" + " <OrderLineItemID>222203266767-2160627739012</OrderLineItemID>\n" + " <IsMultiLegShipping>false</IsMultiLegShipping>\n" + " <IntangibleItem>false</IntangibleItem>\n" + " <MonetaryDetails>\n" + " <Payments>\n" + " <Payment>\n" + " <PaymentStatus>Succeeded</PaymentStatus>\n" + " <Payer type=\"eBayUser\">ranoon1</Payer>\n" + " <Payee type=\"eBayUser\">oz.sunshine</Payee>\n" + " <PaymentTime>2018-11-06T07:14:00.000Z</PaymentTime>\n" + " <PaymentAmount currencyID=\"AUD\">26.74</PaymentAmount>\n" + " <ReferenceID type=\"ExternalTransactionID\">7E2132560L3706829</ReferenceID>\n" + " <FeeOrCreditAmount currencyID=\"AUD\">0.59</FeeOrCreditAmount>\n" + " </Payment>\n" + " </Payments>\n" + " </MonetaryDetails>\n" + " </Transaction>\n" + " </TransactionArray>\n" + " <PayPalPreferred>false</PayPalPreferred>\n" + " </GetItemTransactionsResponse>\n" + " </soapenv:Body>\n" + "</soapenv:Envelope>\n"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html