Someone good in Regular Expressions

Lets say I have a String like this :
String line = "111111 22222 3333 "
and I want to find a regular expression that when I use the split(String regexp) method i.e
String result [ ] = line.split( String regexp ) gives me the following entries in the array:
result[0] = "111111 "
result[1] = "22222 "
result[2] = "3333 "
Regards
/Andreas

import java.util.regex.*;
public class a
  public static void main( String args[] )
    String      line = "111111 22222  3333   ";
    java.util.Vector<String>  them = split( line );
    for (String it : them) System.out.println(it +">");
  static java.util.Vector<String> split( String line )
    java.util.Vector<String>    found = new java.util.Vector<String> ();
    Pattern             p = Pattern.compile( "[^ ]* *" );
    Matcher             m = p.matcher( line );
    while ( m.find() )
      if (m.group().length()>0) found.add( m.group() );
    return found;
}

Similar Messages

  • Who's good with regular expressions?

    i'm trying to get blockhosts to work, but i don't think it's matching.
    here's a snippet from my auth.log
    Jan 15 09:28:11 myhostname (IDLE)[19960]: ([email protected]) [WARNING] Authentication failed for user [admin]
    here's the regex that should match it in /etc/blockhosts.cfg
    "PureFTPD-Fail": re.compile(r"""pure-ftpd: (?@(?P<host>d{1,3}.d{1,3}.d{1,3}.d{1,3})) [WARNING] Authentication failed"""),
    call me lazy, but i'm sure some expert here can solve this in 2 seconds while it would take me 2 hours to figure out the syntax.
    thanks!

    It's clear that your regex will miss this line. For starters, your regex is looking for a match to find 'pure-ftpd:' which doesn't exist in your sample line. Also, your RE expects a match to end with 'Authentication failed'. Again, this is not the case in you sample line.
    I don't see why you need the r"""...""". What's wrong with single quotes?
    That aside, if you change your RE to
    re.compile(r'(?@(?P<host>d{1,3}.d{1,3}.d{1,3}.d{1,3})) [WARNING]')
    Then then 'host' group is matched ok.
    Get hold of Pyreb (in the AUR) for testing with REs.

  • Regular expressions help

    I'm using a RegExp class (http://www.jurjans.lv/flash/RegExp.html) to do some regular expression in AS2. But I'm not very good at it.
    var str:String="What if there are other variables, such as possible <a class='gloss' href='asfunction:_root.handle, confounding variables'><b>confounding variables</b></a> which could explain at least some of the relationship between the two variables? Here <a href='' target='_blank'>is another link</a>.\n<a class='gloss' href='asfunction:_root.handle, confounding variables'>confounded variables</a>"
    var reg1:RegExp = new RegExp("<a.*gloss.*href=[\'\"]?([^\\\'\">]+)>+(.*</a>)", "ig");
    var obj:Object = reg1.exec(str);
    while (obj != null) {
              for(var a in obj){
                        if(!isNaN(a)){
                        trace(a+": "+obj[a]);
              trace(newline);
              obj = reg1.exec(str);
    And this traces:
    2: <b>confounding variables</b></a>
    1: asfunction:_root.handle, confounding variables'
    0: <a class='gloss' href='asfunction:_root.handle, confounding variables'><b>confounding variables</b></a>
    2: confounded variables</a>
    1: asfunction:_root.handle, confounding variables'
    0: <a class='gloss' href='asfunction:_root.handle, confounding variables'>confounded variables</a>
    I'm trying to get the href and the "friendly link" part of the anchor tag (but only for anchors that have a class of gloss).
    As you can see I'm almost there, but I'm getting the extra </a> and the extra ' on the two examples. I tried putting the ) before the </a> but that just broke it. (Of course that could be because this class doesn't work properly, but I'm guessing that isn't the case.)
    Anybody really good with regular expressions who can help me out?

    Looks like there is a "greedy" bug with the () in that AS2 implementation.
    I also have a problem the expression matching not the next occurance of the closing </a> but the final one.
    Anybody have any ideas of other ways to do this?

  • Regular Expression to convert URI to HTML link tag

    I'm trying to create a method that takes an input string and converts any URIs found in the string to a html link tag.
    For example,
    String input = "This is a test string.  I like http://www.sun.com/ and think you should check out http://java.sun.com/"; The output should contain an html a tag for each URI and use the URI as the text as well.
    I need this for a blogging web app i'm working on.
    I tried a few things like
    import java.util.regex.*;
    import java.text.*;
    public class test
         public static void main(String[] args)
              final Pattern p = Pattern.compile("(\\sI\\n|^)(\\w+://[^\\s\\n]+)");
            final Matcher m = p.matcher(args[0]);
              System.out.println(args[0]);
              args[0] = m.replaceAll( "$1<a href=\"$2\">$2</a>");
              System.out.println(args[0]);
    }Any ideas? Something like this will match "http://www.apple.com/" but not a complex string. I've googled this quite a bit and I'm not very good with regular expressions.

    Couldn't get your posted regex to work on anything. Try this:public static void main(String[] args) {
        String input = "This is a test string.  I like http://www.sun.com/ and think you should check out http://java.sun.com/";
        final Pattern p = Pattern.compile("(\\s|^)(\\w+://\\S+)(\\s|$)");
        final Matcher m = p.matcher(input);
        input = m.replaceAll("$1<a href=\"$2\">$2</a>$3");
        System.out.println(input);
    }It should match any uri, however I recommend replacing \\w+ with a more concrete string like (?:(?:http)|(?:https)|(?:ftp)). Let me know if you have a uri that it doesn't match.

  • String replace using regular expressions

    I'm not very good at regular expressions, but I would like my script to replace
         <a href="somepage.html">
    by
    <a href="event:somepage">
    How do I do this?  Thanks in advance!

    Replacing a string that matches a certain pattern with another string is one of the more common RegEx tasks. There is documentation on using them here:
    http://livedocs.adobe.com/flex/3/html/help.html?content=12_Using_Regular_Expressions_01.ht ml
    hth,
    matt horn
    flex docs

  • Please recommend a good tutorial for Regular expressions?

    I have several PERL programs that I need to translate in to JAVA for performance reasons. Those programs heavily use Regular Expressions. I have an excellent knowledge about PERL Regular Expressions but know very little about Java Regular Expressions.
    So Can any one of you recommend me a good tutorial for Java Regular Expressions.
    Thankx In Advance
         LRMK

    Since you know regexs, the java.util.regex.Pattern class API is probably all you need, it pretty thoroughly documents Java's flavor, and the differences from PERL's flavor.

  • Can somebody help me in getting some good material for Regular Expressions and IP Community list

    can somebody help me in getting some good material for Regular Expressions and IP Community list

    I'm not sure what you mean by "IP Community list", but here are 3 reference sites for Regular Expressions:
    Regular Expression Tutorial - Learn How to Use Regular Expressions
    http://www.regular-expressions.info/tutorial.html
    Regular Expressions Cheat Sheet by DaveChild
    http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
    Regular Expressions Quick Reference
    http://www.autohotkey.com/docs/misc/RegEx-QuickRef.htm

  • Regular Expressions in Oracle

    Hello All,
    I come from Perl scripting language background. Perl's regular expressions are rock solid, robust and very fast.
    Now I am planning to master Regular Expressions in Oracle.
    Could someone please point the correct place to start with it like official Oracle documentation on Regular Expressions, any good book on Regex or may be any online link etc.
    Cheers,
    Parag
    Edited by: Parag Kalra on Dec 19, 2009 11:03 AM

    Hi, Parag,
    Look under [R in the index of the SQL language manual|http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/index.htm#R]. All the regular expression functions and operators start with "REGEXP", and there are a couple of entries under "regular expressions".
    That applies to the Oracle 11 and 10.2 documentation. Regular expressions were hidden in the Oracle 10.1 SQL Language manual; you had to look up some similar function (like REGR_SYY, itself hidden under S for "SQL Functions", and then step through the pages one at a time.
    Sorry, I don't know a good tutorial or introduction.
    If you find something hopeful, please post a reference here. I think a lot of people would be interrested.

  • Regular Expressions and comments

    Hello,
    I've got a problem with regular expressions. I Want to find special words like "todo" in java comments, but wasn't able to manage that satisfactory. I hope someone of you can give me an advice! :-)
    example of a comment:
    * comment text. todo: what is still todo.
    First of all, I tried this:
    /\*(.*?)todo(.*?)\*/
    but this version seems to ignore the borders of the comment and shows me also parts of the code.
    Then I tried this:
    /\*([^/]*?)todo(.*?)\*/
    this version returns good results, but doesn't notice html formatting like
    * <code> .... </code> text. todo: text
    So my idea now is to check whether a star precedes the slash, but I don't really know how to combine it.
    Or is there another simplier solution? Thanks for your hints!
    Greetz Jan

    Thanks for your answer, but when I take this expression the programm seems to hang-up. An operation that usually finishs in 3 secs didn't even in 10 minutes. :-( Do you have any idea what could be wrong?
    btw. can I take this one:
    pattern = Pattern.compile("/\\*(?:[^\\*]+|\\*(?!/))*todo.*?\\*/", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
    matcher = pattern.matcher(text);
    text = matcher.replaceAll("");or do I have to take a this instead of replaceAll():
    while (matcher.find()) {
        text = text.substring(0, matcher.start(1)) + text.substring(matcher.end(1), text.length());
        matcher = pattern.matcher(text);
    }any hints?
    Greetz Jan

  • Regular Expressions - Dictionary List

    Good day all -
    I am trying to create a signature(s) to provide a minimalistic "content management" scenario. We have a list of about 150 words that we need to flag if they are seen in user data. I know how to create the regex string for a single word ... and can use the | pipe to separate the words to allow me to combine multiple words into a single signature ... but just how large is the STRING field? 255? 128? unlimited?
    The idea hopefully is to use only 10 - 20 signatures to cover the whole list. Certainly hope to avoid having to write a new signature for each word!
    Looking for suggestions and/or experiences of anyone else having attempted to do something like this.
    Maybe someone found that you could insert unlimited words in the list but by doing so they overtaxed the sensor ... or that it appeared that using more than 10 words in a list was an iffy proposition.
    All your inputs will be appreciated - whether I like what I hear or not! Thanks everyone.
    Hank Schupp

    It all depends on how many states the regular expression will create in the engine. The maximum is 64K bytes, which is a pretty long string. You will have to experiment to find the maximum number of words you can pipe into a single signature. I would recommend dividing the 150 words into different categories and writing one signature for each category. In general, writing one signature for 20 words will make it easy to manage.

  • Those darn regular expressions again ...

    Greetings,
    I feel reluctant to ask this question because I sincerely hate regular expressions, but here is a regular expression question:
    Suppose I receive a byte stream from a device: after having received a, say, 'X' byte some more bytes follow, followed by a number: two or three digits followedby a dot and then some more digits follow. I am interested in that number so I cooked up this:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Test {
         public static void main(String[] args) {
              Pattern pat= Pattern.compile("X.*(\\d{2,3}\\.\\d*)");
              String  str= "fooXbar123.456baz";
              Matcher mat= pat.matcher(str);
              if (mat.find())
                   System.out.println(str.substring(mat.start(1), mat.end(1)));
    }The regular expression represents what I want to see: a capital X, some bytes and the number. b.t.w. I convert those bytes to chars so there is no problem there. The output of this little snippet is "23.456", i.e. it takes the shortest variant of group #1 (the '1' is eaten by the "dot-star" subexpression.
    I hope you understand why I hate those regular expressions so much; they're the devil's invention. My question boils down to: how can I find the longest variant of that group #1 expression? i.e. "123.456".
    A bit more info: the 'bar' part can contain almost anything, including digits. It can even be totally empty. The capital 'X' has to be present and "bar" doesn't contain a capital 'X'.
    kind regards,
    Jos

    JosAH wrote:
    Never did get my head round the 'pimping lemon'!If a word x y z t u is in a language L and if x y^n z t^n u is also in that language the pumping lemma applies and L is a context free language; that is so trivial ... ;-)Was that a low flying jet or just the 'pimping lemon' going straight over my head!
    >
    I used to teach APL to non-(scientists/engineers/mathematicians) . One of the most unsatisfying jobs ever. I love APL but how do you teach APL to someone who does not understand matrices? How do you teach APL to someone who expects 1-1-1-1-1 to be -3? I still get agencies contacting me about APL jobs even though I last used it 25 years ago!I used to program APL on an old DEC LA/36 paper terminal. You had to lean over backwards because those APL symbols were printed on the front side of the keys. Therefore my knees blocked the paper feed so all my printouts turned into a mess ...I was lucky. I used an IBM (5110 springs to mind but at my age!) box and some IBM terminals attached to an IBM370. No silly paper tape. It just cost a fortune for every second one was connected to the IBM370.
    >
    How's the 'limp' Jos? Any better?Not really; I put too much strength on my left leg (the 'good' one) and my body thought something was wrong so it started a bad inflamation in that leg. I'm on inflamation suppressing pills now. dammit.
    We are a real pair of crocks! I mixed and laid 6 ton of concrete and disposed of 8 ton of hardcore during Dec, Jan and Feb. My knee is swollen like a balloon and I'm on anti-inflammatory pills right now. BUT I have to eat a full meal before taking them and that means I have to have to take more pills to suppress my excess stomach acid. God I wish I was 50 again!
    I shall have to visit Holland sometime before we are both confined to wheelchairs.

  • Juniper MX Regular expressions and user permissions ACS 5.4

    Hi everyone!
    Im having some trouble with regular expressions and permissions on our Juniper MX routers through ACS 5.4, and i would like some insight/help/poitners!!
    We have a team of engineers that should only have read only permissions (important: show configuration) and also be able to just change the description on interfaces.
    Thus far with the following regular expressions set for the shell profile they are going through i have managed the above, however the problem is when an engineer inputs "Show configuration", only the interfaces descriptions configuration is shown! The rest of the configuration will not be printed.
    deny-commands1=.*.
    allow-commands1=configure
    deny-configuration1=.*.
    allow-commands2=interfaces .*. description .*$
    allow-configuration1=interfaces .*. description .*$
    allow-commands2=show configuration.*
    allow-commands3=show configuration
    (some of these regex i know that are not needed, i was just playing around to check everything before posting)
    Any pointers as to why or how to resolve this?
    example output with the above:
    show configuration
    ## Last commit: 2014-01-09 09:34:44 EET by someone
    interfaces {
        xe-0/0/0 {
        xe-0/0/1 {
            description xxxx;
        xe-0/1/0 {
            description xxxx;
        xe-0/1/1 {
            description xxxx;
        xe-0/2/0 {
            disable;
        xe-0/2/1 {
            description xxxx;
        xe-0/3/0 {
            description xxxx;
        xe-0/3/1 {
            description xxxx;
        ae0 {
            description "xxxx";
        ae1 {
            description xxxx;
        demux0 {
        lo0 {
    {master}
    Thanks in advance!
    Spyros

    You are absolutely right!!  I was doing research online after posting the above.  The correct RADIUS attribute to use is actually CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools.  Then create the pool in ASA, and call that pool's name in ACS under that RADIUS attribute.  Someone explained this perfectly in this community before.  Much appreciate your answer!
    Here's from another post last year:
    ACS  5 does not have the feature of IP pools. Logically its always good to  setup pools locally on vpn server and if you want user to pick ip from  specific local pool you can configure acs to push that attribute.
    On ACS Go to > Policy Elements  -> Network Access ->   Authorization Profiles -> Create ->
    Name of the Policy ->Dictionary Type: Radius-Cisco VPN 3000/ASA/PIX7.x
    Attribute Type : CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools
    Attribute Type: String
    Attribute Value : Static MYPOOL (Name of the Pool which is defined on the ASA)
    Access Policies ->Default Network Access -> Authorization ->  Create -> Under result section call the Authorization p

  • Pattern matching regular expressions

    I'm attempting to determine if a string matches a pattern of containing less than 100 alphanumeric characters a-z or 0-9 case insensitive. So my regular expression string looks like:
    "^[a-zA-Z0-9]{0,100}$"And I use something like...
    Pattern pattern = Pattern.compile( regexString );I'd like to modify my regex string to include the email 'at' symbol "@". So that the at symbol will be allowed. But my understanding of regex is very limited. How do I include an "or at symbol" in my regex expression?
    Thanks for your help.

    * Code by sabre150
    private static final Pattern emailMatcher;
        static
            // Build up the regular expression according to RFC821
            // http://www.ietf.org/rfc/rfc0821.txt
            // <x> ::= any one of the 128 ASCII characters (no exceptions)
            String x_ = "\u0000-\u007f";
            // <special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "."
            //              | "," | ";" | ":" | "@"  """ | the control
            //              characters (ASCII codes 0 through 31 inclusive and
            //              127)
            String special_ = "<>()\\[\\]\\\\\\.,;:@\"\u0000-\u001f\u007f";
            // <c> ::= any one of the 128 ASCII characters, but not any
            //             <special> or <SP>
            String c_ = "[" + x_ + "&&" + "[^" + special_ + "]&&[^ ]]";
            // <char> ::= <c> | "\" <x>
            String char_ = "(?:" + c_ + "|\\\\[" + x_ + "])";
            // <string> ::= <char> | <char> <string>
            String string_ = char_ + "+";
            // <dot-string> ::= <string> | <string> "." <dot-string>
            String dot_string_ = string_ + "(?:\\." + string_ + ")*";
            // <q> ::= any one of the 128 ASCII characters except <CR>,
            //               <LF>, quote ("), or backslash (\)
            String q_ = "["+x_+"$$[^\r\n\"\\\\]]";
            // <qtext> ::=  "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext>
            String qtext_ = "(?:\\\\[" + x_ + "]|" + q_ + ")+";
            // <quoted-string> ::=  """ <qtext> """
            String quoted_string_ = "\"" + qtext_ + "\"";
            // <local-part> ::= <dot-string> | <quoted-string>
            String local_part_ = "(?:(?:" + dot_string_ + ")|(?:" + quoted_string_ + "))";
            // <a> ::= any one of the 52 alphabetic characters A through Z
            //              in upper case and a through z in lower case
            String a_ = "[a-zA-Z]";
            // <d> ::= any one of the ten digits 0 through 9
            String d_ = "[0-9]";
            // <let-dig> ::= <a> | <d>
            String let_dig_ = "[" + a_ + d_ + "]";
            // <let-dig-hyp> ::= <a> | <d> | "-"
            String let_dig_hyp_ = "[-" + a_ + d_ + "]";
            // <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
            // String ldh_str_ = let_dig_hyp_ + "+";
            // RFC821 looks wrong since the production "<name> ::= <a> <ldh-str> <let-dig>"
            // forces a name to have at least 3 characters and country codes such as
            // uk,ca etc would be illegal! I shall change this to make the
            // second term of <name> optional by make a zero length ldh-str allowable.
            String ldh_str_ = let_dig_hyp_ + "*";
            // <name> ::= <a> <ldh-str> <let-dig>
            String name_ = "(?:" + a_ + ldh_str_ + let_dig_ + ")";
            // <number> ::= <d> | <d> <number>
            String number_ = d_ + "+";
            // <snum> ::= one, two, or three digits representing a decimal
            //              integer value in the range 0 through 255
            String snum_ = "(?:[01]?[0-9]{2}|2[0-4][0-9]|25[0-5])";
            // <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>
            String dotnum_ = snum_ + "(?:\\." + snum_ + "){3}"; // + Dotted quad
            // <element> ::= <name> | "#" <number> | "[" <dotnum> "]"
            String element_ = "(?:" + name_ + "|#" + number_ + "|\\[" + dotnum_ + "\\])";
            // <domain> ::=  <element> | <element> "." <domain>
            String domain_ = element_ + "(?:\\." + element_ + ")*";
            // <mailbox> ::= <local-part> "@" <domain>
            String mailbox_ = local_part_ + "@" + domain_;
            emailMatcher = Pattern.compile(mailbox_);
            System.out.println("Email address regex = " + emailMatcher);
        }Wow. Sheesh, sabre150 that's pretty impressive. I like it for two reasons. First it avoids some false negatives that I would have gotten using the regex I mentioned. Like, [email protected] is a valid email address which my regex pattern has rejected and yours accepts. It's unusual but it's valid. And second I like the way you have compartmentalized each rule so that changes, if any custom changes are desired, are easier to make. Like if I want to specifically aim for a particular domain for whatever reason. And you've commented it so that it is easier to read, for someone like myself who knows almost nothing about regex.
    Thanks, Good stuff!

  • Regular Expressions - Addressbook conversion

    Hi Gurus,
    I am struggling with the following task. I have an addressbook export in the following format and I need to convert it to use the addresses in Eudora.
    I need to do this pretty often. To do away with having to edit the files manually, I am trying to write a Java program using regexp that would take the input file and write out the output file as specified.
    Could someone please advise me on the appropriate regular expressions to get this done?
    TIA.
    Cheers,
    Shanzee.
    Input address file format
    "John","Michael","Kane","[email protected]"
    "Barbara","","Potter","[email protected]"
    "Richard","","Simpson","[email protected]"
    "Graham","T","Laver","graham.t.laver@my_mail.com"
    "Beat","","Henderson"
    "Technology Service Desk"
    Output address file format
    alias "John Michael Kane" [email protected]
    alias "Barbara Potter" [email protected]
    alias "Richard Simpson" [email protected]
    alias "Graham T Laver" graham.t.laver@my_mail.com
    ** delete all rows not having email addresses **

    Hi,
    I guess you are using JDK 1.4 or later. Look at split
    in the String class. And then split your line at ","
    Check how many parts you get (to see it the row has an
    e-mail address or not), and then write the data to
    file.
    /KajMany thanks Kaj.
    I'm using JDK 1.4.2. I was looking for a 'smarter' solution using RegExp :-) But, nevertheless, if I don't get a good suggestion, I'll go ahead and implement this.
    Cheers,
    Shanzee.

  • IR filter using "matches regular expression"

    Hi,
    I am familiar with Perl regular expressions, but I'm having trouble using the IR filter by regular expression in Apex.
    For instance, I would like to search for dates of format 'MM/DD/YY' - can someone tell me how this would be done? I tried '[0-9](2)/[0-9](2)/[0-9](2)' and many other patterns to no avail.
    Also can you point me to a good thread for regular expressions in Apex?
    Thanks for any help.

    Hi,
    you can play around with oracle regular expressions at
    http://www.yocoya.com/apex/f?p=YOCOYA:REGEXP_HOME:0:
    It's an Apex application, albeit "seasoned", where you can build and test the regex and it will be 100% compatible as it runs natively, so it's not simulated on a different platform.
    Most likely the IR filter will make use of REGEXP_LIKE so you can pick that function from the menu.
    Flavio
    http://oraclequirks.blogspot.com
    http://www.yocoya.com

Maybe you are looking for

  • Gr and ir post to copa

    hi, 1) for item base on standard price, price difference during GR or IR will post to copa. does it mean if GR price difference is 10 and IR the price difference -2, then the total difference in copa is 8? 2) for item base on map, how does the differ

  • Use the iPod as storage for pictures from a camera

    Is it possible to use the iPod as a sorage disc for pictures from a camera. I currently use a 40 GByte Archos to store my photos while I´m travelling (there is a possibility to attach a card reader). Is this possible with an iPod as well? Thanks for

  • Photoshop smart object layer will not open in ACR when I double click

    I have a raw file opened up in photoshop, duplicated it, made them smart objects, when I click the smart object icon on the file, i get another copy of the file in photoshop, the file doesn't open up in acr, is there a setting i'm missing? Message wa

  • One of the Video monitors is zoomed in

    Hey Guys, I am using CS3 for Mac. For some reason all the video in the right monitor (pardon my lack of terminology) is zoomed in. I checked the scale on each of these clips and they are all 100%. If I double click them to play in the left monitor it

  • Insert flash web gallery into webpage

    Hi! How do I integrate a flash web gallery created with photoshop into my own webpage? I have to call the swf from another folder than where all the web gallery stuff is. For example my webpage is in the folder /index my gallery swf and all the xml a