Struggling with Pattern.matchesRegular Expression in Apex to find entire link in stringField is not writeable: CAM_Members__c.Affiliate_State__cRegex including curly bracketsRegular Expression matches returns falseWhat is wrong with my Flow Interview?

What are good ways to improve as a writer other than writing courses?

Why should we care about syntactic proofs if we can show semantically that statements are true?

Accidentals - some in brackets, some not

Could one become a successful researcher by writing some really good papers while being outside academia?

What is my malfunctioning AI harvesting from humans?

Was the 2019 Lion King film made through motion capture?

sed delete all the words before a match

What is the maximum number of PC-controlled undead?

Does two puncture wounds mean venomous snake?

Optimal way to extract "positive part" of a multivariate polynomial

How do I calculate the difference in lens reach between a superzoom compact and a DSLR zoom lens?

Write an interpreter for *

Team goes to lunch frequently, I do intermittent fasting but still want to socialize

How do I explain to a team that the project they will work on for six months will certainly be cancelled?

How to use grep to search through the --help output?

How quickly could a country build a tall concrete wall around a city?

In Pokémon Go, why does one of my Pikachu have an option to evolve, but another one doesn't?

How can I iterate this process?

Why aren’t emergency services using callsigns?

In a topological space if there exists a loop that cannot be contracted to a point does there exist a simple loop that cannot be contracted also?

How do we avoid CI-driven development...?

Struggling with Pattern.matches

Does this Foo machine halt?

What's this thing in a peltier cooler?



Struggling with Pattern.matches


Regular Expression in Apex to find entire link in stringField is not writeable: CAM_Members__c.Affiliate_State__cRegex including curly bracketsRegular Expression matches returns falseWhat is wrong with my Flow Interview?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















My regular expression is working properly here: https://regexr.com/4j143



However, when I try to use it in Apex it is not working:



String regExp = '/\s1,(ORDER BY)\s1,(ID)(\s1,(ASC))0,1(\s1,(NULLS)\s1,(LAST))0,1\s0,,/gi';
String input = 'SELECT * FROM ... ORDER BY ID, INDUSTRY ASC';

System.debug(Pattern.matches(regExp, input));


What am I doing wrong? How do I fix it?










share|improve this question
































    1















    My regular expression is working properly here: https://regexr.com/4j143



    However, when I try to use it in Apex it is not working:



    String regExp = '/\s1,(ORDER BY)\s1,(ID)(\s1,(ASC))0,1(\s1,(NULLS)\s1,(LAST))0,1\s0,,/gi';
    String input = 'SELECT * FROM ... ORDER BY ID, INDUSTRY ASC';

    System.debug(Pattern.matches(regExp, input));


    What am I doing wrong? How do I fix it?










    share|improve this question




























      1












      1








      1








      My regular expression is working properly here: https://regexr.com/4j143



      However, when I try to use it in Apex it is not working:



      String regExp = '/\s1,(ORDER BY)\s1,(ID)(\s1,(ASC))0,1(\s1,(NULLS)\s1,(LAST))0,1\s0,,/gi';
      String input = 'SELECT * FROM ... ORDER BY ID, INDUSTRY ASC';

      System.debug(Pattern.matches(regExp, input));


      What am I doing wrong? How do I fix it?










      share|improve this question
















      My regular expression is working properly here: https://regexr.com/4j143



      However, when I try to use it in Apex it is not working:



      String regExp = '/\s1,(ORDER BY)\s1,(ID)(\s1,(ASC))0,1(\s1,(NULLS)\s1,(LAST))0,1\s0,,/gi';
      String input = 'SELECT * FROM ... ORDER BY ID, INDUSTRY ASC';

      System.debug(Pattern.matches(regExp, input));


      What am I doing wrong? How do I fix it?







      apex regular-expressions






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 4 hours ago









      Adrian Larson

      115k19 gold badges135 silver badges274 bronze badges




      115k19 gold badges135 silver badges274 bronze badges










      asked 8 hours ago









      SauloSaulo

      3042 silver badges11 bronze badges




      3042 silver badges11 bronze badges























          1 Answer
          1






          active

          oldest

          votes


















          3














          This has to do with Java's unfortunate implementation of matches() - it assumes the input is the entire string. You feed it a regex of /\s1,...0,,/gi hoping that matches() will return true if the pattern matches a part of the input string but the actual regex that gets executed is /^\s1,...0,,$/gi. That will not match your entire string because your string does not begin with one or more spaces.



          Salesforce docs do explain this nuance:




          A Matcher object finds matches in a subset of its input string called
          a region. The default region for a Matcher object is always the
          entirety of the input string.




          With default region being the entire string, you need to revise your regex by adding segments that match text at the beginning and end of the string (before ORDER BY and after ASC|NULLS|LAST). Here's a simplified, single-backslashed version of your regex with matches() returning true on the region as entire input string:



          (.*)s+(ORDER BY)s+(w+,?s+)+ASC



          If only a portion of your string should be considered "input", the region() function referenced in the doc above will be useful.






          share|improve this answer




















          • 1





            Calling find will return true if you match just a substring.

            – Adrian Larson
            4 hours ago













          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "459"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f273146%2fstruggling-with-pattern-matches%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          This has to do with Java's unfortunate implementation of matches() - it assumes the input is the entire string. You feed it a regex of /\s1,...0,,/gi hoping that matches() will return true if the pattern matches a part of the input string but the actual regex that gets executed is /^\s1,...0,,$/gi. That will not match your entire string because your string does not begin with one or more spaces.



          Salesforce docs do explain this nuance:




          A Matcher object finds matches in a subset of its input string called
          a region. The default region for a Matcher object is always the
          entirety of the input string.




          With default region being the entire string, you need to revise your regex by adding segments that match text at the beginning and end of the string (before ORDER BY and after ASC|NULLS|LAST). Here's a simplified, single-backslashed version of your regex with matches() returning true on the region as entire input string:



          (.*)s+(ORDER BY)s+(w+,?s+)+ASC



          If only a portion of your string should be considered "input", the region() function referenced in the doc above will be useful.






          share|improve this answer




















          • 1





            Calling find will return true if you match just a substring.

            – Adrian Larson
            4 hours ago















          3














          This has to do with Java's unfortunate implementation of matches() - it assumes the input is the entire string. You feed it a regex of /\s1,...0,,/gi hoping that matches() will return true if the pattern matches a part of the input string but the actual regex that gets executed is /^\s1,...0,,$/gi. That will not match your entire string because your string does not begin with one or more spaces.



          Salesforce docs do explain this nuance:




          A Matcher object finds matches in a subset of its input string called
          a region. The default region for a Matcher object is always the
          entirety of the input string.




          With default region being the entire string, you need to revise your regex by adding segments that match text at the beginning and end of the string (before ORDER BY and after ASC|NULLS|LAST). Here's a simplified, single-backslashed version of your regex with matches() returning true on the region as entire input string:



          (.*)s+(ORDER BY)s+(w+,?s+)+ASC



          If only a portion of your string should be considered "input", the region() function referenced in the doc above will be useful.






          share|improve this answer




















          • 1





            Calling find will return true if you match just a substring.

            – Adrian Larson
            4 hours ago













          3












          3








          3







          This has to do with Java's unfortunate implementation of matches() - it assumes the input is the entire string. You feed it a regex of /\s1,...0,,/gi hoping that matches() will return true if the pattern matches a part of the input string but the actual regex that gets executed is /^\s1,...0,,$/gi. That will not match your entire string because your string does not begin with one or more spaces.



          Salesforce docs do explain this nuance:




          A Matcher object finds matches in a subset of its input string called
          a region. The default region for a Matcher object is always the
          entirety of the input string.




          With default region being the entire string, you need to revise your regex by adding segments that match text at the beginning and end of the string (before ORDER BY and after ASC|NULLS|LAST). Here's a simplified, single-backslashed version of your regex with matches() returning true on the region as entire input string:



          (.*)s+(ORDER BY)s+(w+,?s+)+ASC



          If only a portion of your string should be considered "input", the region() function referenced in the doc above will be useful.






          share|improve this answer













          This has to do with Java's unfortunate implementation of matches() - it assumes the input is the entire string. You feed it a regex of /\s1,...0,,/gi hoping that matches() will return true if the pattern matches a part of the input string but the actual regex that gets executed is /^\s1,...0,,$/gi. That will not match your entire string because your string does not begin with one or more spaces.



          Salesforce docs do explain this nuance:




          A Matcher object finds matches in a subset of its input string called
          a region. The default region for a Matcher object is always the
          entirety of the input string.




          With default region being the entire string, you need to revise your regex by adding segments that match text at the beginning and end of the string (before ORDER BY and after ASC|NULLS|LAST). Here's a simplified, single-backslashed version of your regex with matches() returning true on the region as entire input string:



          (.*)s+(ORDER BY)s+(w+,?s+)+ASC



          If only a portion of your string should be considered "input", the region() function referenced in the doc above will be useful.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 6 hours ago









          identigralidentigral

          1,8149 silver badges15 bronze badges




          1,8149 silver badges15 bronze badges










          • 1





            Calling find will return true if you match just a substring.

            – Adrian Larson
            4 hours ago












          • 1





            Calling find will return true if you match just a substring.

            – Adrian Larson
            4 hours ago







          1




          1





          Calling find will return true if you match just a substring.

          – Adrian Larson
          4 hours ago





          Calling find will return true if you match just a substring.

          – Adrian Larson
          4 hours ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Salesforce Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f273146%2fstruggling-with-pattern-matches%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

          Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

          Tom Holland Mục lục Đầu đời và giáo dục | Sự nghiệp | Cuộc sống cá nhân | Phim tham gia | Giải thưởng và đề cử | Chú thích | Liên kết ngoài | Trình đơn chuyển hướngProfile“Person Details for Thomas Stanley Holland, "England and Wales Birth Registration Index, 1837-2008" — FamilySearch.org”"Meet Tom Holland... the 16-year-old star of The Impossible""Schoolboy actor Tom Holland finds himself in Oscar contention for role in tsunami drama"“Naomi Watts on the Prince William and Harry's reaction to her film about the late Princess Diana”lưu trữ"Holland and Pflueger Are West End's Two New 'Billy Elliots'""I'm so envious of my son, the movie star! British writer Dominic Holland's spent 20 years trying to crack Hollywood - but he's been beaten to it by a very unlikely rival"“Richard and Margaret Povey of Jersey, Channel Islands, UK: Information about Thomas Stanley Holland”"Tom Holland to play Billy Elliot""New Billy Elliot leaving the garage"Billy Elliot the Musical - Tom Holland - Billy"A Tale of four Billys: Tom Holland""The Feel Good Factor""Thames Christian College schoolboys join Myleene Klass for The Feelgood Factor""Government launches £600,000 arts bursaries pilot""BILLY's Chapman, Holland, Gardner & Jackson-Keen Visit Prime Minister""Elton John 'blown away' by Billy Elliot fifth birthday" (video with John's interview and fragments of Holland's performance)"First News interviews Arrietty's Tom Holland"“33rd Critics' Circle Film Awards winners”“National Board of Review Current Awards”Bản gốc"Ron Howard Whaling Tale 'In The Heart Of The Sea' Casts Tom Holland"“'Spider-Man' Finds Tom Holland to Star as New Web-Slinger”lưu trữ“Captain America: Civil War (2016)”“Film Review: ‘Captain America: Civil War’”lưu trữ“‘Captain America: Civil War’ review: Choose your own avenger”lưu trữ“The Lost City of Z reviews”“Sony Pictures and Marvel Studios Find Their 'Spider-Man' Star and Director”“‘Mary Magdalene’, ‘Current War’ & ‘Wind River’ Get 2017 Release Dates From Weinstein”“Lionsgate Unleashing Daisy Ridley & Tom Holland Starrer ‘Chaos Walking’ In Cannes”“PTA's 'Master' Leads Chicago Film Critics Nominations, UPDATED: Houston and Indiana Critics Nominations”“Nominaciones Goya 2013 Telecinco Cinema – ENG”“Jameson Empire Film Awards: Martin Freeman wins best actor for performance in The Hobbit”“34th Annual Young Artist Awards”Bản gốc“Teen Choice Awards 2016—Captain America: Civil War Leads Second Wave of Nominations”“BAFTA Film Award Nominations: ‘La La Land’ Leads Race”“Saturn Awards Nominations 2017: 'Rogue One,' 'Walking Dead' Lead”Tom HollandTom HollandTom HollandTom Hollandmedia.gettyimages.comWorldCat Identities300279794no20130442900000 0004 0355 42791085670554170004732cb16706349t(data)XX5557367