Sponsored Content
Top Forums Programming RegEx in Java. \b does not react to a newline Post 302421243 by durden_tyler on Friday 14th of May 2010 12:35:40 AM
Old 05-14-2010
Works fine for me:

Code:
$ 
$ 
$ # show the Java program
$ cat -n RegexTest.java
     1    import java.util.regex.Matcher;
     2    import java.util.regex.Pattern;
     3    public class RegexTest {
     4      public static void main(String[] args) {
     5        String str = "hello and bye\nand\nblah";
     6        String ptn = "\\b\\w+\\b";
     7        int num = 0;
     8        Pattern pattern = Pattern.compile(ptn);
     9        Matcher matcher = pattern.matcher(str);
    10        System.out.println("=======  String for inspection  =======");
    11        System.out.println(str);
    12        System.out.println("========================================");
    13        System.out.println("=======  Pattern to be searched  =======");
    14        System.out.println(ptn);
    15        System.out.println("========================================");
    16        boolean found = false;
    17        while (matcher.find()) {
    18          num++;
    19          System.out.println("Match # "+num+"\t:\t"+matcher.group()+"\t=>\tstarts at "
    20              + "index "+matcher.start()+" and ends at index "+matcher.end());
    21          found = true;
    22        }
    23        if (!found) {
    24          System.out.println("No match found");
    25        }
    26      }
    27    }
$ 
$ # compile
$ javac RegexTest.java
$ 
$ # run
$ java RegexTest
=======  String for inspection  =======
hello and bye
and
blah
========================================
=======  Pattern to be searched  =======
\b\w+\b
========================================
Match # 1    :    hello    =>    starts at index 0 and ends at index 5
Match # 2    :    and    =>    starts at index 6 and ends at index 9
Match # 3    :    bye    =>    starts at index 10 and ends at index 13
Match # 4    :    and    =>    starts at index 14 and ends at index 17
Match # 5    :    blah    =>    starts at index 18 and ends at index 22
$ 
$

tyler_durden
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Converting perl regex to sed regex

I am having trouble parsing rpm filenames in a shell script.. I found a snippet of perl code that will perform the task but I really don't have time to rewrite the entire script in perl. I cannot for the life of me convert this code into something sed-friendly: if ($rpm =~ /(*)-(*)-(*)\.(.*)/)... (1 Reply)
Discussion started by: suntzu
1 Replies

2. Shell Programming and Scripting

Modify or react on "cd" command

Hi folks, I found a pretty nice thread in this forum showing how to change the window title of a PuTTY window from within the shell. (Which I can't reference due having less than 5 postings?!?) I modified the solution a bit to have a function in my zshrc "wt()" changing the window title each... (8 Replies)
Discussion started by: mephistho
8 Replies

3. Shell Programming and Scripting

Add newline to regex

I have a perl script that runs a program and puts the output of the program into a variable. The output of the file looks like: Statistics 0 AverageTime: Statistics 0 AverageTime: I'm trying to run a regular express against this to pull out the first value in each of the parens... (1 Reply)
Discussion started by: Boomn4x4
1 Replies

4. Shell Programming and Scripting

Perl, RegEx - Help me to understand the regex!

I am not a big expert in regex and have just little understanding of that language. Could you help me to understand the regular Perl expression: ^(?!if\b|else\b|while\b|)(?:+?\s+){1,6}(+\s*)\(*\) *?(?:^*;?+){0,10}\{ ------ This is regex to select functions from a C/C++ source and defined in... (2 Replies)
Discussion started by: alex_5161
2 Replies

5. Shell Programming and Scripting

Sendmail K command regex: adding exclusion/negative lookahead to regex -a@MATCH

I'm trying to get some exclusions into our sendmail regular expression for the K command. The following configuration & regex works: LOCAL_CONFIG # Kcheckaddress regex -a@MATCH +<@+?\.++?\.(us|info|to|br|bid|cn|ru) LOCAL_RULESETS SLocal_check_mail # check address against various regex... (0 Replies)
Discussion started by: RobbieTheK
0 Replies

6. Web Development

Google Trends: react.js angular.js vue.js

While I'm on the subject of Google trends, here is a global trend since 2004 comparing react.js, angular.js, vue.js It's no secret I'm a vue.js fan and coder, but not because of the trend line (which I just saw for the first time a few minutes ago) My experience is that vue.js, a late arrival... (0 Replies)
Discussion started by: Neo
0 Replies

7. UNIX for Beginners Questions & Answers

Pass RegEx to java program in bash script

I can't seem to get this right. I've tried it every way imaginable using every trick I see on stackexchange and such. No luck. So nothing major here, something like: #!/bin/bash SEARCH="ARG1 ARG2 '((^EXACT$)|(.*InTheMiddle*)|(^AtBeginning*))'" java -cp /my/class/path MyClassName $SEARCH... (3 Replies)
Discussion started by: stonkers
3 Replies
GREP(1) 						      General Commands Manual							   GREP(1)

NAME
grep, egrep, fgrep - search a file for a pattern SYNOPSIS
grep [ option ] ... expression [ file ] ... egrep [ option ] ... [ expression ] [ file ] ... fgrep [ option ] ... [ strings ] [ file ] DESCRIPTION
Commands of the grep family search the input files (standard input default) for lines matching a pattern. Normally, each line found is copied to the standard output; unless the -h flag is used, the file name is shown if there is more than one input file. Grep patterns are limited regular expressions in the style of ed(1); it uses a compact nondeterministic algorithm. Egrep patterns are full regular expressions; it uses a fast deterministic algorithm that sometimes needs exponential space. Fgrep patterns are fixed strings; it is fast and compact. The following options are recognized. -v All lines but those matching are printed. -c Only a count of matching lines is printed. -l The names of files with matching lines are listed (once) separated by newlines. -n Each line is preceded by its line number in the file. -b Each line is preceded by the block number on which it was found. This is sometimes useful in locating disk block numbers by con- text. -s No output is produced, only status. -h Do not print filename headers with output lines. -y Lower case letters in the pattern will also match upper case letters in the input (grep only). -e expression Same as a simple expression argument, but useful when the expression begins with a -. -f file The regular expression (egrep) or string list (fgrep) is taken from the file. -x (Exact) only lines matched in their entirety are printed (fgrep only). Care should be taken when using the characters $ * [ ^ | ? ' " ( ) and in the expression as they are also meaningful to the Shell. It is safest to enclose the entire expression argument in single quotes ' '. Fgrep searches for lines that contain one of the (newline-separated) strings. Egrep accepts extended regular expressions. In the following description `character' excludes newline: A followed by a single character matches that character. The character ^ ($) matches the beginning (end) of a line. A . matches any character. A single character not otherwise endowed with special meaning matches that character. A string enclosed in brackets [] matches any single character from the string. Ranges of ASCII character codes may be abbreviated as in `a-z0-9'. A ] may occur only as the first character of the string. A literal - must be placed where it can't be mistaken as a range indicator. A regular expression followed by * (+, ?) matches a sequence of 0 or more (1 or more, 0 or 1) matches of the regular expression. Two regular expressions concatenated match a match of the first followed by a match of the second. Two regular expressions separated by | or newline match either a match for the first or a match for the second. A regular expression enclosed in parentheses matches a match for the regular expression. The order of precedence of operators at the same parenthesis level is [] then *+? then concatenation then | and newline. SEE ALSO
ed(1), sed(1), sh(1) DIAGNOSTICS
Exit status is 0 if any matches are found, 1 if none, 2 for syntax errors or inaccessible files. BUGS
Ideally there should be only one grep, but we don't know a single algorithm that spans a wide enough range of space-time tradeoffs. Lines are limited to 256 characters; longer lines are truncated. GREP(1)
All times are GMT -4. The time now is 01:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy