Regular expression expert needed

what is the diffrence between String s;
s.split("\[,\]");
and
s.split(",");
?

flounder wrote:
Basically no difference. The square brackets are used for a group of delimeters (not sure of the exact regex terminology). The square brackets are called character classes or character sets.
flounder wrote:
So if I had "[abc]" then it would split on either an 'a' 'b' or 'c'. So in your example having only a single char inside the brackets is pointless.You can see character sets as a mini-language inside the regex language. The normal meta characters from regex do not apply inside character sets, they have their own meta characters, which are the '-' and '^' (besides the square brackets themselves, of course). Also, these two meta characters need to be placed at certain places inside the character set to be valid. The '-' is a range indicator only between two characters, but not when placed at the start or end of a character class. And the '^' is a negation character only when placed a the start of a character class, otherwise it will just match the characters '^' itself.
Some examples:
[a-c]   // matches 'a', 'b' or 'c'
[-ac]   // matches '-', 'a' or 'c'
[ac-]   // matches 'a', 'c' or '-'
[^ab]   // matches any character except 'a' and 'b'
[a^b]   // matches 'a', '^' or 'b'
[.?*]   // matches '.', '?' or '*'

Similar Messages

  • Regular expression help needed

    Hello experts,
    I am looking to implement a search & replace regular expression
    my regular expressions are as follows:
    search regular expression = (test\\s+--\\s*)?this is a test(.*)?
    replace regular expression = (new) brand new test$2
    i.e. The results I require are
    case 1
    input string = test -- this is a test 1999
    correct result = (new) brand new test 1999
    or (since I require the regular expression to be optional)
    case 2
    input string = this is a test
    correct result = brand new test
    How do I implement this using pattern and matcher? Sample code would be useful
    I am having difficulties because matcher.appendReplacement will always replace because my regular expressions are optional. (which is incorrect)
    i.e. I am getting the following incorrect result ((new) is being appended)
    input string = this is a test
    incorrect result = (new) brand new test
    At the moment my non working code is
    StringBuffer sb = new StringBuffer();
    Pattern pattern = Pattern.compile("(test\s+--\s*)?this is a test(.*)?");
    Matcher matcher = pattern.matcher("this is a test");
    if(matcher.find())
    matcher.appendReplacement(sb, "(new) brand new test$2");
    String result = sb.toString();
    System.out.println(result);
    }In the above scenario I want the output to be 'brand new test' without the (new) because the input string did not contain 'test --'
    Hope this makes sense
    Thanks

    For example: StringBuffer sb = new StringBuffer();
    Pattern pattern = Pattern.compile("(test\s+--\s*)?this is a test(.*)");
    Matcher matcher = pattern.matcher("this is a test");
    if(matcher.find())
      matcher.appendReplacement(sb, ""); // copy everything before the match
      if (matcher.start(1) != -1)
        sb.append("(new) ");
      sb.append("brand new test");
      sb.append(matcher.group(2));
    matcher.appendTail(sb); // copy everything after the match
    System.out.println(sb.toString()); Because the first group is optional, you need to find out whether it participated in the match before you add the "(new) " bit. The second group doesn't need to be optional because (1) the subexpression with the group can match nothing, and (2) you don't need to perform a different action depending on what that group did. You just append the captured text, which may be an empty string.

  • Regular Expressions help needed.

    Hi,
    I have lines like
              <div id="contentSub">         26
              /*]]>*/</style>         27
    <ul>         30
    Dylan is gay         36
    var wgNamespaceNumber = 0;         41You see every line is contained a string plus some white spaces then plus a number.
    How to retrieve the strings?
    Such that becomes
    <div id="contentSub">
              /*]]>*/</style>
    <ul>  
    Dylan is gay   
    var wgNamespaceNumber = 0;  And also get the number by a regular expression
    26
    27
    30
    36
    41Thanks

    I believe that
    "^(.*)\\s+(\\d+)$"would do the trick. Pick the two groups out from the Matcher.

  • Regular expression technique needed to eliminate " and replace with \"

    I am trying to figure out the best way to fix data coming from a database table through the use of ColdFusion, in which there are some quotation marks that JavaScript Flash doesn't want in the array before adding the text content to a quiz.
    At the moment, if there are any quotation marks in the elements of the array, even though each element is surrounded by quotation marks, I have to add a backslash to escape them.
    I was wondering what would be the regular expression to use to do this, not for the quotation marks surrounding each element, but for those used inside of them.
    For example,
    ["08 Working with Flash Forms_16",
    "The syntax for the submit button was .",
    "name="submit" type="submit"",
    "name="submit"action="submit"",
    "id="submit" type="submit"",
    "id="submit"action="submit"",
    "No, name="submit" type="submit" is correct.",
    "true",
    "false",
    "false",
    "false",
    "897"] ,
    is an example of an element created that has quotation marks inside of the quotation marks for each element.
    I am debating about handling this either with XML by writing code to do that with ColdFusion instead of using the code I generated with ColdFusion to create this.
    I am also debating about writing the regular expression in a way that I could use it from either ActionScript 2 or 3.0, going at it at the file level maybe.
    At the moment I am opening the file and experimenting with writing a Find expression that uses regular expression to select what I want to change before changing it.

    Hi,
    In excel menu Tools->macro
    Enter the macro name say SAPBEXonRefresh
    click 'create', will go to visual basic editor
    To display '#' as '', paste the following code
    Sub SAPBEXonRefresh(queryID As String, resultArea As Range)
    Dim c As Range
    For Each c In resultArea.Cells
    If c.Value = "#" Then c.Value = ""
    Next c
    End Sub
    Close the editor and click on refresh again.
    Thanks..
    Shambhu

  • Regular Expression help needed plzzz

    Hi,
    I am trying to form a regular expression in order to search for say two char patterns and both the patterns should be present. Say I have a string example = "ModeleerComponent.java,1.1"I am using a regular expression to find whether the user input matches with it or not. For example the user can enter Mod and 1.1...now since the string contains Mod and 1.1 the result should be true.
    This is how my regular expression looks regex = ^(?=.*?Mod)(?=.*?1\.1).*$ so now the result is true is okay. But if I enter code]regex = ^(?=.*?asdfg)(?=.*?1\.1).*$ it should return false but it returns true. As 1.1 is present. Could someone tell me how I could use an AND that is when both Mod and 1.1 are present then only return true.
    I hope whatever I have written is understandable.
    Thank you very much.

    Or this:
    public class TestRegex {
        public static void main(String[] args) {
                String example = "ModeleerComponent.java,1.1";
                System.out.println(example.indexOf("Mod") != -1 && example.indexOf("1.1") != -1);
    }returns:
    true

  • Regular Expression Help Needed - Thanks

    Hi
    Can someone please tell me how to the regex to search for the a world not preceded by another word.
    ex. search for the word "Hardcover" NOT preceded by the word "Not"
    ... Hardcover ... -> OK
    ... Not Hardcover ... -> BAD, because there's a "Not" before "Hardcover"
    thanks

    Use negative lookbehind:   Pattern p = Pattern.compile("(?<!Not )Hardcover");http://www.regular-expressions.info/

  • Need help in unix regular expressions

    Hi All,
    I'm new to shell scripting. Please help me in achieving this
    I am trying to a find regular expression that need to pick a file with begin with the below format and mask variable is called in xml file.
    currently the script accepts:
    mask="CLIENT_ID+'_ADHSUITE_IN_'+date2str(now,'MMddyy','US/Eastern')+'.txt'"
    But it should accept in the below format
    2595_ADHSUITE_IN_ANNWEL_030309_2009-02-10_15-12-46-000_648.TXT715.outpgp_out
    where CLIENT_ID=2595. How to place wild card character '*' in the below to accept file in the above format. here is what i made changes.
    mask="CLIENT_ID+'_ADHSUITE_IN_'*+date2str(now,'MMddyy','US/Eastern')*+'.TXT'*+'.outpgp_out'"
    Please help.
    Thanks

    I believe your statement is being passed over twice:
    First Pass: (This is done by something like javascript)
    CLIENT_ID+'_ADHSUITE_IN_'+'.*'+date2str(now,'MMddyy','US/Eastern')+'.*'+'.TXT'+'.*'+'.outpgp_out'In this pass the variables and functions that are enclosed in literals are processed:
    (1) CLIENT_ID is replaced by 2595 or whatever is current value is:
    (2) date2str(now,'MMddyy','US/Eastern') gets replaced by 040609 (if the current time now is 4th april 2009).
    So at the end of this first pass we have a string:
    2595_ADHSUITE_IN_.\*040609.\*.TXT.*.outpgp_outThis string at the end of the first pass is a Posix basic regular expression. (ref: [http://en.wikipedia.org/wiki/Regular_expression] ) accessed at time of post).
    This is the string I put in the Regular Expression text box on [http://www.fileformat.info/tool/regex.htm]
    and it matches "2595_ADHSUITE_IN_ANNWEL_040609_2009-01-27_17-02-28-000_631.TXT715.outpgp_out" for me (though I prefer my egrep test).
    I hope this is somewhat clearer. Remember I have very little information about your system/application and I make big guesses.
    NB: (I should thank Frits earlier for pointing my sloppiness between wildcards (for eg unix shell filename expansion) and regular expressions).
    For the second pass this used to compared other strings to see

  • Regular expressions: serious design flaw?

    I wondered why sometimes, the replaceAll() method works in my code and sometimes it throws a java.util.regex.PatternSyntaxException. I wrote a little test case to show the problem
    private void regularExpressionTest() {
            String escapers = "\\([{^$|)?*+."; //characters to escape to avoid PatternSyntaxException
            String text = "The quick brown fox jumps over the lazy dog.";
            System.out.println("Original: "+text);
            String regExp = "o";
            String word = "HELLO";
            String result = text.replaceAll(regExp, word);
            System.out.println("Replace all '"+regExp+"' with "+word+": "+result);
            text = "The quick brown {animal} jumps over the lazy dog.";
            System.out.println("Original: "+text);
            regExp = "{animal}";
    //        regExp = escapeChars(regExp, escapers); //escape possible regular expression characters
            word = "catterpillar";
            result = text.replaceAll(regExp, word);
            System.out.println("Replace all '"+regExp+"' with "+word+": "+result);
    }//regularExpressionTest()The output is:
    Original: The quick brown fox jumps over the lazy dog.
    Replace all 'o' with HELLO: The quick brHELLOwn fHELLOx jumps HELLOver the lazy dHELLOg.
    Original: The quick brown {animal} jumps over the lazy dog.
    java.util.regex.PatternSyntaxException: Illegal repetition
    {animal}
         at java.util.regex.Pattern.error(Pattern.java:1528)
         at java.util.regex.Pattern.closure(Pattern.java:2545)
         at java.util.regex.Pattern.sequence(Pattern.java:1656)
         at java.util.regex.Pattern.expr(Pattern.java:1545)
         at java.util.regex.Pattern.compile(Pattern.java:1279)
         at java.util.regex.Pattern.<init>(Pattern.java:1035)
         at java.util.regex.Pattern.compile(Pattern.java:779)
         at java.lang.String.replaceAll(String.java:1663)
         at de.icomps.prototypes.Test.regularExpressionTest(Test.java:57)
         at de.icomps.prototypes.Test.main(Test.java:34)
    Exception in thread "main" As the first replacement works as espected, the second throws an Exception. Possible because '{' is a special character for the regular expression API. In case I know the regular expression, i could escape these special characters. But in my generic server app, the strings are all parameters, so the only way for replaceAll() to work is, to escape all possible special characters in the regular expression.
    1. Is there a complete list of all special characters for regular expressions that need to be escaped?
    2. Is there a similar replaceAll() method without regular expressions? So that all occurences of a substring can be replaced by another string? (So far, I wrote my own method but this is of course more time consuming for massive string operations.)

    1. The complete list of specially-recognized characters are listed in the Java 1.4.* API. (Of course, new ones may eventually be added as the regex package matures).
    2. It is time consuming to program in general. You should have written your own utility method that goes through a String using indexOf and building up the String in a StringBuffer, and apparently you did. Now you have the utility method...you no longer need to write that method again.
    3. Or you could have written some kind of method that automatically escapes the specially-recognized characters...

  • Regular expressions for replacing text with sms language text

    Hi, I'm trying to write a function which converts normal, correctly spelled text into the shorter sms language format but struggling to come up with the regular expressions i need to do so, can anyone help?
    1: remove surplus white space at the beginning of a sentence and at the end of a sentence.
    e.g. " hello." --> "hello." OR "hello ." --> "hello."
    2: remove preceeding and/or proceeding space if there's a word then a number possibly followed by another word
    e.g. "come 2 me" --> "come2me" OR "dnt 4get" --> "dnt4get"
    3: remove "aeiou" if word starts and ends with "!aeiou"
    e.g. "text" --> "txt"

    You can make the whitespace on either side optional:   text = text.replaceAll("\\s*(\\d)\\s*", "$1");1. Use String's trim() method.
    3. This one has to be done in two steps: import java.util.regex.*;
    public class Test
      public static void main(String... args) throws Exception
        String text = "The quick brown fox jumps over the lazy dog.";
        System.out.println(devowelize(text));
      public static String devowelize(String str)
        Pattern p = Pattern.compile(
          "[a-z&&[^aeiou]]++(?:[aeiou]++[a-z&&[^aeiou]]++)+",
          Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (m.find())
          m.appendReplacement(sb, m.group().replaceAll("[aeiou]+", ""));
        m.appendTail(sb);
        return sb.toString();
    }

  • Xml regular expressions

    Hi Friends,
    I am very new to xml technologies.i want to generate regular expression in xml.
    Like this
    if((cond1 && cond2)or(con1 || con2)...........(ConN && ConM))
    the above regular expression i need to add in xml file.
    Please help me to do this.Friends this is little bit urgent.pls help me friends.
    Thanks in advance .your help will be really appriciate.
    Awaiting for replay.
    Regards,
    Sai srinu.

    You want to add these conditions in XMLP ?
    or XML file ?

  • Regular expression to change Hour:Min:Sec time to Min:Sec using the Search and Replace tool

    Hi,
    I think the title says it all, but I've used a script to export a project from an NLE as a html file with a bunch of images and timecodes within table cells. For example, In=00:00:34 and Out=00:01:30 needs to be converted In=0:34 and Out=1:30. I think the Search and Replace is the most simple way of working that, but I've not experience with Regular Expressions (or much in that regard) so would really appreciate if someone could give me a hand writing the Regular Expression I need to achieve this.
    Thanks in advance,
    James

    Okay, so an example row is:
    <tr>
    <td align="left" valign="top"><p align="left"><img src="Snapshot At Event Start [00-01-22-19].jpg"><br>
    <strong>In: </strong>1:22<br>
    <br>
    </p></td>
    <td align="left" valign="top"><p align="left"><img src="Snapshot At Event End [00-01-24-25].jpg"><br>
    <strong>Out: </strong>1:24<br>
    </p></td>
    <td width="100%" align="left" valign="top"><p><strong>Cut to League Video</strong></p>
      <p><strong>Duration</strong>: 2<br>
      <strong></strong></p></td>
    </tr>
    I need to change it to:
    <tr>
    <td align="left" valign="top"><p align="left"><img src="Snapshot At Event Start [00-01-22-19].jpg"><br>
    <strong>In: </strong>1:22 seconds<br>
    <br>
    </p></td>
    <td align="left" valign="top"><p align="left"><img src="Snapshot At Event End [00-01-24-25].jpg"><br>
    <strong>Out: </strong>1:24 seconds<br>
    </p></td>
    <td width="100%" align="left" valign="top"><p><strong>Cut to League Video</strong></p>
      <p><strong>Duration:</strong> 2 seconds<br>
      <strong></strong></p></td>
    </tr>
    The script itself is something I found somewhere on the internet - it's for Sony Vegas.
    I've highlighted the changes with bold underlined italics.
    Thanks for you help, guys,
    James

  • Regular Expression.  Select Statement.  Carriage Return

    Oracle 9i
    Using SQLPLUS
    I've read about regular expression and need some translation/explanation.
    I have a large table containing a varchar2 (free text) column. Users may have inserted carriage returns when they entered the data. I need to locate rows that contain carriage returns, select and display them. Later I'll need to update those rows to replace the carriage returns with a space.
    Can you assist with syntax. I believe use of a regular expression is required.
    Thanks

    for single characters like <CR> TRANSLATE() Doh. Never post at the end of a long day.
    As the other posters have pointed out, one-for-one single character substitution is normally done with REPLACE(), although TRANSLATE() also works. The more normal role for TRANSLATE() is situations where you want to substitute multiple characters, e.g.
    SQL> update <your table> set <your column> = replace (<your column> , chr(13)||chr(10), ' ');This substitutes a space for a carriage return and line feed combination.
    Cheers, APC

  • Regular expression or format into string (nevermind)

    Solved it,
    I can use string to fractional number!
    Hi,
    I have a 2D string array from a multicolumn list box, and i want to check if every value is valid number, the numbers can be a single and can have negative values. Does anyone knows which regular expression i need to check this, or is there an ever better way doing it?
    Best regards,
    Thijs
    Solved!
    Go to Solution.

    You shoudl post your solution so others who have a similar issue can learn from how you solved it.
    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

  • Quick regular expression question/help

    Can someone help me with two regular expressions I need. I could spend a while trying to figure it out myself, however times short and I really would like to get a fool proof optimal solution (my attempt would be buggy).
    Sample sentence
    The population, is projected to reach 200,000, or more (by 2020).[7] This is {dummy} text.
    The first regular expression
    I need all brackets and every thing between them to be removed from a sentence.
    Brackets such as: ( ), [ ] and { } .
    I.e. Given the above sentence the following would be returned:
    The population, is projected to reach 200,000, or more. This is text.
    The second regular expression
    If a word has a trailing comma character I need to add a whitespace between the word and the comma.
    I.e. Given the sentence returned from the first regular expression, this regex would return:
    The population *,* is projected to reach 200,000 *,* or more. This is text.
    Many thanks to anyonewho can help me with this!
    Edited by: Myles on Jan 18, 2008 8:12 AM

    http://java.sun.com/docs/books/tutorial/extra/regex/index.html
    http://www.regular-expressions.info

  • Problems with regular expressions.

    Hi all.
    I want to substitute within an xml file a string with the following structure:
    Referencer="//@Model/@OwnedElement.0/@OwnedElement.1/@OwnedElement.0/@OwnedElement.1/@OwnedElement.33 ..."
    where the dots mean that the string within the quotes may be repeated (separated by spaces) many times.
    I've tried to match such expression with java regex, with no luck. I thought running
    line.contains("Referencer=\"[^\"\\r\\n]*\"");
    would return true, but it didn't.
    Could anybody point me the right way?.
    Thank you all in advance.

    Method String.contains() does not take a regular expression - you need to use method String.matches() or class Pattern.
    This looks to be a good problem to solve using http://elliotth.blogspot.com/2004/07/java-implementation-of-rubys-gsub.html .

Maybe you are looking for

  • Windows in Bootcamp No Longer Accessible

    I have a Mac Pro (Nahalem, I think it is--if I spelled that right?) on the primary hard drive are located Mac OS X, Windows XP Pro in Bootcamp, and a small partition formatted FAT 32. This arrangement has worked fine for the over two years I've owned

  • Problems with Document Connect

    I have a problem with Document Connect. I am unable access office live workspace. I have been on the help line with microsoft but they were unable to help. Then I went to an apple store and was informed by one of the sales assistance that Document Co

  • Connecting a Dell 1100 laser printer to iMacs

    I have a two iMacs (one is brand new and one is 4 years old) and want to connect a Dell 1100 laser printer to them. Is this possible to do and if yes what software do I need (and where can I get it)? Thanks!

  • What is compounding attributes?how can i create it.?

    what is compounding attributes?how can i create it.?

  • Web Gallery misquoting picture count

    On my web gallery page I have 6 albums. Each album has a count underneath it of how many pictures are in that album. The numbers are totally wrong. For example my first album says there are 60 photos. There are really only 15 photos. Any idea what th