Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

regex expression for up to but not including and split

Posted on 2010-11-16
9
Medium Priority
?
446 Views
Last Modified: 2012-05-10
I have a line of text

blah blah blah;blah blah blah

I'm trying to formulate a regex expression to capture everything up to the semicolon.

On a second regex or to replace the earlier, I basically need to split up a string separated by semicolons.

Thanks in advance.
0
Comment
Question by:kblackwel
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 3
9 Comments
 
LVL 35

Expert Comment

by:Terry Woods
ID: 34150009
$line = preg_replace("/;.*/","",$line);
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 34150028
To split a string separated by semicolons, use:

$my_array = preg_split("/;/",$string);
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 34150035
Ah, I made an assumption you're using PHP - which language are you using?
0
The top UI technologies you need to be aware of

An important part of the job as a front-end developer is to stay up to date and in contact with new tools, trends and workflows. That’s why you cannot miss this upcoming webinar to explore the latest trends in UI technologies!

 

Author Comment

by:kblackwel
ID: 34150163
It's for a ETL, so it has to be regex
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 34150190
Ok, well the patterns I've provided are valid, but the first one requires use of a replace command rather than a capture.

To capture text before the first ; character, use pattern:

^(.*?);
0
 
LVL 35

Expert Comment

by:Terry Woods
ID: 34150218
Does the string have a fixed (or limited) number of fields? Depending on your regex tool, you might be able to use the following to split a string:

(?:([^;]*);)*

or, with a limited number of fields, something like this:

([^;]*);([^;]*);([^;]*);([^;]*);([^;]*)
0
 

Author Comment

by:kblackwel
ID: 34150535
Thank you,

For my needs, all I needed was

([^;]*)

That matched blah blah blah up to the semicolon.

The field I'm trying to parse would only have 2 semicolons in it max.

Any thoughts on matching the second blah blah blah past the first semicolon.

Again, thanks on the first solution.

Basically I'm pulling a string out of a DB table. In my etl program, I don't have access to split or anything like that. But regex is available. Trying to use that to parse an address table row that is delimited by semicolons.
0
 

Author Comment

by:kblackwel
ID: 34150542
Actually from the semicolon to end of line would be fine too.
0
 
LVL 35

Accepted Solution

by:
Terry Woods earned 500 total points
ID: 34150610
From the first semi-colon to the end of the line:

;(.*)

0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn different types of Android Layout and some basics of an Android App.
We are witnesses that everyone is saying that our children shouldn't "play" with a technology because it is dangerous. This article is going to prove that they are wrong.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Simple Linear Regression

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question