473,396 Members | 1,713 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Regular expression problem

I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?

Joe
Jul 17 '05 #1
6 3015


Joe Ray wrote:
I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?

Joe


Try:

public class regexDemo {
private static void show( String s )
{
System.out.println( "IN [" + s + "]" );
s = s.replaceAll( "([^\\\\])\'", "$1\'\'" );
System.out.println( "OUT[" + s + "]\n" );

return;
}

public static void main( String args[] )
{
show( "This 'string' needs quoting." );
show( "And 'quote' some of these but don\\'t do all." );

return;
}
}

Tim

Jul 17 '05 #2
D
ra****@hotmail.com (Joe Ray) wrote in message news:<46*************************@posting.google.c om>...
I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?

Joe

[^\\]'
Jul 17 '05 #3
Joe Ray wrote:
I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?


A zero-width look-ahead assertion should be able to do what you need.

(?<=[^\\]|.{0})'
Jul 17 '05 #4
Joe Ray wrote:
I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?

Joe


Joe,

<mind-reading-mode>
If you are doing this for the purpose of creating an SQL string, you
will be better off in the long run to use a PreparedStatement. E.g.

Connection conn = getConnection();
PreparedStatement pStmt = conn.prepareStatement(
"SELECT id FROM My_Table WHERE name = ?");
pStmt.setString(1, "Joe's Pizza");
ResultSet rs = pStmt.execute();

Then it is the JDBC driver's problem to worry about escaping strings.
</mind-reading-mode>

HTH,
Ray

--
XML is the programmer's duct tape.
Jul 17 '05 #5

I do something like this for a jdbc insert:

private int insertDetailStatement() {
/**
* Buid SQL Data Statement
*/
int fKeyDetail = checkDupDetail();
if (fKeyDetail > 0) {
return fKeyDetail;
};
/**
* Build the author_detail insert STATEMENT with data
*/
String sqlStatement = DETAILINSERTSQL
+ jTitle.getText().trim().replaceAll("'", "''") + "', '"
+ jSuffix.getText().trim().replaceAll("'", "''") + "', '"
+ jLastName.getText().trim().replaceAll("'", "''") + "', '"
+ jMiddleName.getText().trim().replaceAll("'", "''") + "', '"
+ jFirsfName.getText().trim().replaceAll("'", "''") + "', '"
+ jBirthDeath.getText() + "', '"
+ jdescription.getText().trim().replaceAll("'", "''") + "', '"
+ jLink.getText() + "')";
/**
* Insert the Author Data
*/
JPeopleQuotesAppDB.insertTableRow(sqlStatement);

return checkDupDetail();
"Raymond DeCampo" <rd******@spam.twcny.spam.rr.spam.com.spam> wrote in
message news:_3*******************@twister.nyroc.rr.com...
Joe Ray wrote:
I am trying to come up with a regular expression that searches and
replaces all occurences of the string "'" and replaces it with "''" .
However if a backslash comes before the single quote I do NOT want it
too be replaced with two single quotes. Any clues?

Joe


Joe,

<mind-reading-mode>
If you are doing this for the purpose of creating an SQL string, you
will be better off in the long run to use a PreparedStatement. E.g.

Connection conn = getConnection();
PreparedStatement pStmt = conn.prepareStatement(
"SELECT id FROM My_Table WHERE name = ?");
pStmt.setString(1, "Joe's Pizza");
ResultSet rs = pStmt.execute();

Then it is the JDBC driver's problem to worry about escaping strings.
</mind-reading-mode>

HTH,
Ray

--
XML is the programmer's duct tape.

Jul 17 '05 #6
Chris Dutton wrote:
A zero-width look-ahead assertion should be able to do what you need.

(?<=[^\\]|.{0})'
^^^^^
Will you please explain the last part haw it works ?
Thank you

Jul 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
by: Harry | last post by:
Hi there, does anyone know how I can build a regular expression e.g. for the string.search() function on runtime, depending on the content of variables? Should be something like this: var...
11
by: Dimitris Georgakopuolos | last post by:
Hello, I have a text file that I load up to a string. The text includes certain expression like {firstName} or {userName} that I want to match and then replace with a new expression. However,...
3
by: James D. Marshall | last post by:
The issue at hand, I believe is my comprehension of using regular expression, specially to assist in replacing the expression with other text. using regular expression (\s*) my understanding is...
7
by: Billa | last post by:
Hi, I am replaceing a big string using different regular expressions (see some example at the end of the message). The problem is whenever I apply a "replace" it makes a new copy of string and I...
9
by: Pete Davis | last post by:
I'm using regular expressions to extract some data and some links from some web pages. I download the page and then I want to get a list of certain links. For building regular expressions, I use...
3
by: LordHog | last post by:
Hello all, I am attempting to create a small scripting application to be used during testing. I extract the commands from the script file I was going to tokenize the each line as one of the...
25
by: Mike | last post by:
I have a regular expression (^(.+)(?=\s*).*\1 ) that results in matches. I would like to get what the actual regular expression is. In other words, when I apply ^(.+)(?=\s*).*\1 to " HEART...
5
by: shawnmkramer | last post by:
Anyone every heard of the Regex.IsMatch and Regex.Match methods just hanging and eventually getting a message "Requested Service not found"? I have the following pattern: ^(?<OrgCity>(+)+),...
1
by: sunil | last post by:
Hi, Am writing one C program for one of my module and facing one problem with the regular expression functions provided by the library libgen.h in solaris. In this library we are having two...
1
by: Shawn B. | last post by:
Greetings, I'm using a custom WebBrowser control: http://www.codeproject.com/KB/miscctrl/csEXWB.aspx When I get the DocumentSource of a web page I browsed, and run a regular expression...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.