wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes java regex Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "java regex" Watch "java regex" New topic
Author

java regex

joe nesbitt
Greenhorn

Joined: Dec 05, 2009
Posts: 17
Hi all,

I am new to java 6 regex.

I have a string with the following content ( each line separated by \r\n).

Existing string:
aaaa|
TEST|x||y|z|""|cccc|bbb|"
xxxx|
TEST|x||y|z|Something|cccc|bbb|";
TEST|x|ST|y|z|""|cccc|bbb|";
TEST|x||y|z|""XYZ|cccc|bbb|";
TEST|x||y|z|Y""|cccc|bbb|";


The expected strign content:
aaaa|
TEST|x||y|z||cccc|bbb|
xxxx|
TEST|x|ST|y|z|Something|cccc|bbb|
TEST|x|ST|y|z|""|cccc|bbb|
TEST|x|ST|y|z|""XYZ|cccc|bbb|
TEST|x|ST|y|z|Y""|cccc|bbb|

Basically, if the content between 2nd and 3rd occurance of | is blank and if the content betweeen 5th and 6th occurance of | is "", then make it blank.(Ex: Line 2 in the EXISTING STRING)
Also if the content between 5th and 6th occurrence is not empty and not "" then if the content between 2nd and 3rd occurance of | is blank make it ST.(eX: Line 4,6,7 in existing string)
In other scenarios, nothing needs to be changed.
How to make it possible with Regex replaceall or Pattern/match.

I tried few things but in vain. - str.replaceAll( "(TEST\\\\|[\\|\\|]*\\\\|\\\\|[\\|\\|]*\\\\|[\\|\\|]*\\\\|)\"\"\\|", "$1\\|" ); - I t does not work for 4,6,7 lines/scenarios.

Please help as I have a dealine to meet.

Thanks a ton in advance.
Darryl Burke
Bartender

Joined: May 03, 2008
Posts: 4523
    
    5

Rehash and virtually a double post of http://www.coderanch.com/t/511294/java/java/java-regex (only replacing the caret with the pipe character).

edit BeForthrightWhenCrossPostingToOtherSites
http://www.java-forums.org/advanced-java/32834-regex-search-replace.html


luck, db
There are no new questions, but there may be new answers.
joe nesbitt
Greenhorn

Joined: Dec 05, 2009
Posts: 17
Any help please!

joe nesbitt
Greenhorn

Joined: Dec 05, 2009
Posts: 17
How to check if the content between 5th and 6th occurence of | has alphanumeric content and then check if the content between 2nd and 3rd | is empty, if so, make it STR.


My current regex is replacing all empty positions with STR. But I need it to change it only between 2nd and 3rd position.

Regex I am using:
(STR\\|[\\|\\|]*\\\\|)\\|\\|", "$1|STR|" );

The current (wrong output):

TEST|x|STR|y|z|Y""|cccc|bbb|STR|"

Any help is appreciated.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: java regex
 
Similar Threads
string manipulation
java v6 regex question
java 6 replacell/repalcefirst
scjp chapter 5 q...5 page no 303
Regarding regex and the * and ? Quantifiers