Evaluating a String True/False with a Regular Expression

I need to write a regular expression to make the following strings display the values of true/false:
112 Elm Street True
112 South Elm St. True
112 S. Elm True
Elm St. False
South 112 Elm False
Here's what I have so far:
public class MethodOne
     public static void main (String args[])
          return street.matches (//d+//s+[A-Z]{1}[a-z][.]?//s{1}[A-Z]{1}[a-z]+[.]);
        String address1 = "112 Elm Address"
        String address2 = "112 South Elm St."
        String address3 = "112 S. Elm"
        String address4 = "Elm St."
        String address5 = "South 112 Elm"
        if (address1.matches(street) ) {
        System.out.println("True");
        else {
        System.out.println("False")
           }// end if
     Can anyone help me out?

Is this what you want?
String address1 = "112 Elm Street";
String address2 = "112 South Elm St.";
String address3 = "112 S. Elm";
String address4 = "Elm St.";
String address5 = "South 112 Elm";
String matchString = "\\d+ [A-Z,a-z,. ]+";
System.out.println(address1.matches(matchString));
System.out.println(address2.matches(matchString));
System.out.println(address3.matches(matchString));
System.out.println(address4.matches(matchString));
System.out.println(address5.matches(matchString));

Similar Messages

  • Little help with this regular expression ?

    Greetings all,
    My string is like "P: A104, P105, K106" and I tried to split it using following regular expression ,but seems even though it returns 'true' as matched, it does not split the string.
    Finally what I want is String is array like {"P:","A104","P105","K106"}
    What seems to be the problem with my regular expression?
           String PAT1="[a-zA-Z]:\\s([a-zA-Z]\\d{1,}([,]\\s)?)*";
         String inp="P: A104, P105, K106";
         Pattern p=Pattern.compile(PAT1);
         System.out.println(p.matcher(inp).matches());
         String strs[]=inp.split(PAT1);
         for(String s:strs){
              System.out.println("part  "+s);
         }

    pankajjaiswal10 wrote:
    You can also use split(":|,")No, that will remove the colon and leave the whitespace intact. My understanding is that the OP wants to keep the colon and remove the commas and whitespace. I would use this: String[] strs = inp.split(",?\\s+");

  • What's wrong with the regular expression?

    Hi all,
    For the life of me I can not figure out what is wrong with this regular expression
    .*\bA specific phrase\.\b.*
    This is just an example the actual phrase can be an specific phrase. My problem comes when the specific phrase ends in a period. I've escaped the period but it still gives me an error. The only time I don't get an error is when I take off the end boundry character which will not suffice as a solution. I need to be able to capture all the text before and after said phrase. If the phrase doesn't have a period it would look like this...
    .*\bA specific phrase\b.*
    which works fine. So what is it about the \.\b combination that is not matching?
    I've been banging my head on this for a while and I'm getting nowhere.
    The application highlights text that comes from a server. The user builds custom highlights that have some options. Highlight entire line, match partial word, and ignore case. The code that builds my pattern is here
    String strHighlight = _strHighlight;
            strHighlight = strHighlight.replaceAll("\\*", "\\\\*");
            strHighlight = strHighlight.replaceAll("\\.", "\\\\.");
            String strPattern = strHighlight;
            if(_bEntireParagraph)
                if(_bPartialWord)
                    strPattern = ".*" + strHighlight + ".*";
                else               
                    strPattern = ".*\\b" + strHighlight + "\\b.*";           
            else
                if(_bPartialWord)
                    strPattern = strHighlight;
                else               
                    strPattern = "\\b" + strHighlight + "\\b";  
            if(_bIgnoreCase)
                _patHighlight = Pattern.compile(strPattern, Pattern.CASE_INSENSITIVE);
            else
                _patHighlight = Pattern.compile(strPattern);So for example I matching the phrase: The dog ate the cat. And that phrase came over in the following text: Look there's a dog. The dog ate the cat. "Oh my!"
    And my user has the entire line and ignore case options selected then my regex woud look like this: .*\bThe dog ate the cat\b.*
    That should get highlighted, but for some reason it doesn't. Correct me if I'm wrong but doesn't the regex read as follows:
    any characters
    word boundry
    The dog ate the cat[period]
    word boundry
    any characters until newline.
    Any help will be much appreciated

    A word boundary (in the context of regexes) is a position that is either followed by a word character and not preceded by one (start of word) or preceded by a word character and not followed by one (end of word). A word character is defined as a letter, a digit, or an underscore. Since a period is not a word character, the only way the position following it could be a word boundary is if the next character is a letter, digit or underscore. But a sentence-ending period is always followed by whitespace, if anything, so it makes no sense to look for a word boundary there. I think, instead of \b, you should use negative lookarounds, like so:   strPattern = ".*(?<!\\w)" + strHighlight + "(?!\\w).*";

  • Problems with java regular expressions

    Hi everybody,
    Could someone please help me sort out an issue with Java regular expressions? I have been using regular expressions in Python for years and I cannot figure out how to do what I am trying to do in Java.
    For example, I have this code in java:
    import java.util.regex.*;
    String text = "abc";
              Pattern p = Pattern.compile("(a)b(c)");
              Matcher m = p.matcher(text);
    if (m.matches())
                   int count = m.groupCount();
                   System.out.println("Groups found " + String.valueOf(count) );
                   for (int i = 0; i < count; i++)
                        System.out.println("group " + String.valueOf(i) + " " + m.group(i));
    My expectation is that group 0 would capture "abc", group 1 - "a" and group 2 - "c". Yet, I I get this:
    Groups found 2
    group 0 abc
    group 1 a
    I have tried other patterns and input text but the issue remains the same: no matter what, I cannot capture any paranthesized expression found in the pattern except for the first one. I tried the same example with Jakarta Regexp 1.5 and that works without any problems, I get what I expect.
    I am using Java 1.5.0 on Mac OS X 10.4.
    Thank to all who can help.

    paulcw wrote:
    If the group count is X, then there are X plus one groups to go through: 0 for the whole match, then 1 through X for the individual groups.It does seem confusing that the designers chose to exclude the zero-group from group count, but the documentation is clear.
    Matcher.groupCount():
    Group zero denotes the entire pattern by convention. It is not included in this count.

  • Help with java regular expressions

    Hi all ,
    i am going to match a patternstring against an input string and print the result here is my code:
         import java.util.regex.*;
         import java.util.*;
         public class Main {
              private static final String CASE_INSENSITIVE = null;
              public static void main(String[] args)
              CharSequence inputStr = "i have 5 years FMCG saLEs exp on java/j2ee and i worked on java and j2ee and 2 projects on telecom java j2ee domain with your  with saLEs maNAger experience of java j2ee and c# having very good  on c++ exposure in JAVA"
             String patternStr = "\"java j2ee\" and \"c#\"";
              StringTokenizer st = new StringTokenizer(patternStr,"\",OR");
             Matcher matcher=null;
              while(st.hasMoreTokens()){
                   String s=st.nextToken();
                   Pattern pattern = Pattern.compile(s,Pattern.CASE_INSENSITIVE);
               matcher = pattern.matcher(inputStr);
               while (matcher.find()) {
                  String result = matcher.group();
                 if(!result.equalsIgnoreCase(" "))
                             System.out.println("result:"+result);
         when i compile this code i am getting the expected result...ie
    result:java j2ee
    result:java j2ee
    result: and
    result: and
    result: and
    result: and
    result: and
    result: and
    result:c#
    but when i replace String patternStr = "\"java j2ee\" and \"c#\""; with
    String patternStr = "\"java j2ee\" and \"c++\""; i am just getting c in the result instead of c++ ie i am getting result :
    result:java j2ee
    result:java j2ee
    result: and
    result: and
    result: and
    result: and
    result: and
    result: and
    result:C
    result:c
    result:c
    result:c
    result:c
    result:c
    result:c
    In the last lines i should get result:c++ instead of result: c
    Any ideas please
    Thanks

    In the last lines i should get result:c++ instead of result: cThe regular expression parser considers the plus sign '+' a special
    character; it means: one or more times the previous regular expression.
    So 'c++' means one or more 'c's on or more times. Obviously you don't
    want that, you want a literal '+' plus sign. You can do that by prepending
    the '+' with a backslash '\'. Unfortunately, the javac compiler considers
    a backslash a special character and therefore you have to 'escape'
    the backslash also, by adding another backslash. The result looks
    like this:"c\\+\\+"kind regards,
    Jos

  • Help with Understanding Regular Expressions

    Hello Folks,
    I need some help in understanding the Regular Expressions.
    -- This returns the Expected string from the Source String. ", Redwood Shores,"
    SELECT
      REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA,aa',
                    ',[^,]+,', 1, 1) "REGEXPR_SUBSTR"
      FROM DUAL;
    REGEXPR_SUBSTR
    , Redwood Shores,
    However, when the query is changed to find the Second Occurrence of the Pattern, it does not match any. IMV, it should return ", CA,"
    SELECT
      REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA,aa',
                    ',[^,]+,', 1, *2*) "REGEXPR_SUBSTR"
      FROM DUAL;
    REGEXPR_SUBSTR
    NULLCan somebody help me in understanding Why Second Query not returning ", CA,"?
    I did search this forum and found link to thread "https://forums.oracle.com/forums/thread.jspa?threadID=2400143" for basic tutorials.
    Regards,
    P.

    PurveshK wrote:
    Can somebody help me in understanding Why Second Query not returning ", CA,"?With your query...
    SELECT
      REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA,aa',
                    ',[^,]+,', 1, *2*) "REGEXPR_SUBSTR"
      FROM DUAL;You are looking for patterns of "comma followed by 1 or more non-comma chrs followed by a comma."
    So, let's manually pattern match that...
    '500 Oracle Parkway, Redwood Shores, CA,aa'
                       ^               ^
                       |               |
                               |
                               |
                      Here to here is the
                      first occurence.So the second occurance will start searching for the same pattern AFTER the first occurence.
    '500 Oracle Parkway, Redwood Shores, CA,aa'
                                        ^
                                        |
    i.e. the search for the second occurence starts heretherefore the first "," from that point is...
    '500 Oracle Parkway, Redwood Shores, CA,aa'
                                           ^
                                           |
                                          hereand there is nothing there matching the pattern you are looking for because it only has the
    "comma follwed by 1 or more non-comma chrs"... but it doesn't have the "followed by a comma"
    ...so there is no second occurence,

  • Problem with a regular expression

    I want to check the date.
    I wrote a sample pattern
    pattern = Pattern.compile("([0-9]{2}\\.[0-9]{2}\\.[0-9]{2,4}){0,10}");DD.MM.YYYY
    DD.MM.YY
    "" - empty date
    It works fine, but how could I check, whether the date is not greater than 31 and so on with the other things.
    It should pass:
    "11.12.2006"
    "15.15.2005" - wrong date
    "01.00.2005" - worng date
    "22.22.1000" - also could be wrong.
    Thanks in advance.

    CalendarI check befor the data will be sent to the database.Good. I just meant that regex can't check whether Febuary has 28 or 30 days in a giant leap year.
    There is not only dates, special fields like names,
    ids and so on. I check all with regular expressions,
    wanted the date also. And wanted to know whether it
    is possible in this expression to make so, that the
    date can be "". I can check it explicitly, I wanted
    to do all the job with a regex.Why not simply check for a String length of 0? :)
    The first sample I wrote allows
    "DD.MM.YYYY" and "" and "DD.MM.YY", but in last
    sample "" and YY impossibleHm? You mean two-digit year and no year (but the rest of date still present)?

  • Extract time and data with a regular expression

    Hi,
    I have a string with time and date in a HTML statement.
    String s =">19:59, 18 August 2006</a> ";
    // I hope get
    String s1="19:59, 18 August 2006";or
    String s =">18:37, 4 September 1998</a>"Because of different length of months, so how use regular expression to extract it.
    The second question is how to write the string into a file.
    filename =  "A.txt";
                    File file = new File(filename);
              out=new BufferedOutputStream(
                        new FileOutputStream(file));
                   byte[] buffer = new byte[1024];
    // then what?Thank you in advance!

    If "WARNING" can never occur in the input then wedon't have to worry about making the regex not match
    it.
    Hmm, how about fool-proof? :)Bad idea, and impractical or impossible to implement. Excessively defensive coding leads to bloated, hard to maintain code, and a greater likelihood of bugs.
    Code so that you code works correctly provided the preconditions are met. It's the caller's responsibility to meet them. Don't waste time and gunk up your code trying to handle inputs that aren't allowed to occur.

  • Parse Mac Address with match regular expression

    Hi Everyone,
    I have a problem with the Match Regular Expression function,
    I am trying to parse the response two a arp -a 192.168.0.15 request in order to extract MAC address of this remote IP, I used the following RegEx: ^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$
    I am wondering why do I need to do a string subset first to extract only the MAC Address part. Isn't Match Regular Expression function capable of recognizing the RegEx directly in the middle of a string?
    I only works when I extract the right tring subset as in the picture bellow.
    Thanks for your answers.
    Solved!
    Go to Solution.
    Attachments:
    Mac Address.JPG ‏40 KB

    Get rid of the "^" in the beginning of your regular expression. You are instructing it to find the pattern at the beginning of the string.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • Problem with java regular expression

    Hi,
    I try to use the regular expression as follows
    Pattern pattern = Pattern.compile("\wpub\w");
    Matcher matcher = null;
    matcher = pattern.matcher("38712pubeeqpwoiu");
    if (matcher.matches())
    System.out.println("Matched");
    else
    System.out.println("Not Matched");
    and I always get the answer as "Not Matched". I am not sure what is wrong with the code.
    thanks

    Use find() rather than matches().

  • Problem with my regular expression

    Hi
    I am trying to find function declarations within source code. I've been trying to use regular expressions, but if anyone else has an easier / better way to do this, as ross perot said, "I'm all ears"
    Here's my regular expression printed out:
    sb = [.]*void foo[.]*
    sb is a stringbuffer variable, so the regex is [.]*void foo[.]*
    Can anyone tell me why when I run this pattern on my loaded source file it tells me that the pattern does not match? LOL can you help me fix this?

    I doubt that regex is a very good way to find method
    declarations, although you can probably make it work
    reasonably well for the most common cases.You've got a point. This is just to get the ball rolling. I don't want to have to do full syntax parsing yet.
    >
    In your particular situation, I'd guess it has to do
    with [.]*. I think that inside [], the
    dot is a literal dot, not "any character." If you
    want "zero or more of anything followed by void" then
    it's .*void.
    Just tried
    sb = .*void foo.*
    it still didn't work.
    In any case, however, this only covers methods
    returning void. For the more general case, I don'tI didn't give you all my code. I actually use a classloader and reflection to determine what the methods are, return values etc. So yes, void in this case is not overly flexible, but I can plug in whatever it is I'm looking for.
    think a simple regex will do it. You need a kind of
    tool that I can't recall the name of--something to
    build and examine an abstract syntax tree perhaps.
    Try starting here:
    http://www.google.com/search?q=java+abstract+syn
    tax+treeI'm not even sure it abstract syntax tree is what you
    want, but I think it's at least closer than regex.
    There might be something that's a step or two earlier
    in the compilation process that will give you what
    you want.

  • Problem with email regular expression

    I found the following regular expression from this website : http://www.regular-expressions.info/email.html
    \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\bor
    ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$I am using the following website to check its success, as well as my java app. : http://www.regexplanet.com/simple/index.html
    of course java has a problem with the illegal escape character so i add another "/".
    In both of my testing scenarios the regex value seems to fail. Am I missing something here?
    If anyone could also test this regex and verify or correct my problem I would be very grateful.
    Edited by: rico16135 on Jun 5, 2010 4:01 PM
    Edited by: rico16135 on Jun 5, 2010 4:02 PM

    rico16135 wrote:
    of course java has a problem with the illegal escape character so i add another "/".I seem to be missing the distinction between a forward slash / which is not an escape character, and a backslash \ which is.
    Also, if you show your actual Java code (in code tags, of course), and describe clearly and precisely what's going wrong--pasting in the exact, complete error message and indicating clearly which line caused it, if there is one--people will be in a better position to help you.

  • Find text Between tags with a Regular Expression

    I am trying to find specif text -- table names - within a
    <cfquery> tag in all my cfm files. I am using an extend find
    function in Homesite (I think Dreamweaver has the same
    functionality). This expression works:
    <[Cc][fF][qQ][uU][eE][rR][Yy]
    [^>]*>[^>]*(EventName|AttendeeName)[^>]*</[Cc][fF][qQ][uU][eE][rR][Yy]>
    for find the text EventName or AttendeeName. However, if
    there are other cf tags like <cfif> within the
    <cfquery>, then the tag/text is not found.
    Can anyone help? It is a useful expression to have if you are
    trying to transfer applications developed on a windows machine to
    a, say, linux machine, and have table name sensititvity issues with
    mySql.

    quote:
    Originally posted by:
    Newsgroup User
    Thanks for all the help. Comments below.
    > Thanks, but it:
    > 1) Captures everything between the first and last query
    in a script if there
    > is more than one cfquery in the script
    Oops: sorry. Stick a question mark after the asterisks to
    stop the matches
    being greedy.
    Used this:
    <[Cc][fF][qQ][uU][eE][rR][Yy].*?(EventName|AttendeeName)[^>].*?</[Cc][fF][qQ][uU][eE][rR][ Yy]>
    and got some finds again with multiple queries and some
    errors as mentioned below.
    > 2) It produces some regular expression errors in
    Homesite.
    Can't help you there. Sounds like HS's regex processor is
    bung: there's
    nothing non-standard or tricky about that regex (which might
    cause
    compatibility issues; JS vs PERL vs Java, etc).
    HS on the whole is bung (IMO). Have you considered using a
    text editor
    that is... err... *current*? ;-)
    No, can you suggest one. Just use HS for years and it does
    most of what I want.
    What sort of errors is it giving?
    Regular expression error No 17. Bad expression format or
    internal error.
    > The reason for this is I am developing on a windows
    machine with mysql and
    > want to use the application online on a linux machine
    where table names are
    > case sensitive. My code was not always faithful to that
    since in windows you
    > can be sloppy!
    Have you seen this:
    http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
    It might be a better approach anyhow.
    Adam

  • Problem true/false with the command SHOW_LOV

    Hello,
    I have a simple problem with the command SHOW_LOL
    When i press an Button with this trigger:
    LIST_OF_VALUES('hallo','OKI');
    And my Procedire like this:
    PROCEDURE list_of_values(p_lov in VARCHAR2, p_text in VARCHAR2) IS
    v_lov BOOLEAN;
    BEGIN
    v_lov := SHOW_LOV(p_lov);
    IF v_lov THEN
    MESSAGE('You have just selected a '||p_text);
    ELSE
    MESSAGE('You have just cancelled the List of Values');
    END IF;
    END;
    When ever i pressed the button, the procedure jumps into the else sector, but why?
    Because it is true, or not?
    When i alter the variable like this:
    v_lov := true;
    then it runs.
    Can you help me?
    Greetings

    example of help forms 6i.
    DECLARE
    a_value_chosen BOOLEAN;
    BEGIN
    a_value_chosen := Show_Lov('my_employee_status_lov');
    IF NOT a_value_chosen THEN
    Message('You have not selected a value.');
    Bell;
    RAISE Form_Trigger_Failure;
    END IF;
    END;

  • How to get only the lower words with 10g regular expressions?

    below is a small test case, but last sql didn't work as I expected, any suggestions?
    thank you.
    CREATE TABLE tab_regexp_tst ( vtest_col VARCHAR2(50) );
    INSERT INTO tab_regexp_tst VALUES ('hakan');
    INSERT INTO tab_regexp_tst VALUES ('KEMAL');
    INSERT INTO tab_regexp_tst VALUES ('ahMET');
    COMMIT;
    exec dbms_stats.gather_table_stats(user, tabname=>'tab_regexp_tst', cascade=>TRUE);
    commit;
    SELECT vtest_col "UPPERS" FROM tab_regexp_tst WHERE REGEXP_LIKE(vtest_col, '[[:upper:]]');
    UPPERS
    KEMAL
    ahMET
    SELECT vtest_col "lowers" FROM tab_regexp_tst WHERE REGEXP_LIKE(vtest_col, '[[:lower:]]');
    lowers
    hakan
    ahMET
    SELECT vtest_col "just lowers"  FROM tab_regexp_tst
    WHERE REGEXP_LIKE(vtest_col, '[[:lower:]]') and REGEXP_LIKE(vtest_col, '[[:upper:]]{0}');
    just lowers
    hakan
    ahMET               <- ?? :)

    Thank you Volder :)
    SELECT vtest_col "sadece küçükler"  FROM tab_regexp_tst WHERE regexp_like(vtest_col, '^[[:lower:]]+$') ;
    sadece küçükler
    hakan
    SELECT vtest_col "SADECE BÜYÜKLER"  FROM tab_regexp_tst WHERE regexp_like(vtest_col, '^[[:upper:]]+$') ;
    SADECE BÜYÜKLER
    KEMAL

Maybe you are looking for

  • LR 5: Exporting books does not work

    Hi everyone. The last 2 weeks I spent creating a photobook (30x30cm), 100 pages. To have a faster start, I've duplicated a book project that was created with Lightroom 4 and edited this. Unfortunately I cannot export the new book. Neither as PDF (tri

  • Help me format

    I have a 250gb westeren digtal hard drive, exact info hhere Western Digital Which is located in an A-power encloure http://www.geeks.com/details.asp?invtid=AP35-C&cat=CAS All that is connected via firewire cord.....however that hard drive crashed, no

  • How to place a WebPart in Publishing Page Content

    Hi, when you use a publishing page you are able through the ribbon to add existing webparts into the content of the publishing page. I would like to add programmatically a webpart into the content of the publishing page. I couldnt find anyting to tha

  • 2nd hand ipod touch and it wont turn on past the apple/skull

    So I just bought a used ipod touch, either 2nd or 3rd gen. not sure. but it wont turn on all the way. And when i plug it in the computer doesnt think its pluged in. Help??

  • Elements 9, DSLR H.264 - What codec is best to edit with & highest quality?

    Hello All, I have quite a bit of DSLR footage I recently shot using a Canon 5d.  I have Adobe Premiere Elements 9 and it really chokes down the system.  I have a PC with i7 and 8 gigs of RAM. What would be the best file format to convert the H.264 fo