Replace All with Regular Expression
Hi all,
I need a help to replace the String:
to
"<a href=\"1\"">Java Programming</a>"
I was trying to replace with
.replaceAll("\\[\\[*([^\\]]*?)*\\]\\]", "<a href=\"\"></a>")
but I don't know how to separate the parameters values.
Best regards
Hi prometheuzz,
you are the one!!
But how I could do to a Srting like this:
Ah, more requirements...
Things are getting a bit messy now:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main {
public static void main(String[] args) {
String line = "any text any text any text any text any text. "+
"Click - [[Code: 6 Title: Java Programming]]. "+
"any text any text any text any text any text. "+
"- [[C�digo: 2 T�tulo: Sun]] text text "+
"any text any text any text any text any text.";
String newLine = line;
String[] wikiTags = getWikiTags(newLine);
for(String tag : wikiTags) {
String newTag = "<a href=\""+get("(Code:|C�digo:)", " ", tag)+
"\">"+get("(Title:|T�tulo:)", "$", tag)+"</a>";
newLine = newLine.replaceFirst("\\[\\["+tag+"\\]\\]", newTag);
System.out.println(line);
System.out.println(newLine);
public static String[] getWikiTags(String text) {
java.util.List<String> list = new java.util.ArrayList<String>();
Pattern pattern = Pattern.compile("(?<=\\[\\[)(.*?)(?=\\]\\])");
Matcher matcher = pattern.matcher(text);
while(matcher.find()) {
list.add(matcher.group());
return list.toArray(new String[list.size()]);
public static String get(String start, String end, String text) {
Pattern pattern = Pattern.compile("(?<="+start+"\\s)(.*?)(?="+end+")");
Matcher matcher = pattern.matcher(text);
return matcher.find() ? matcher.group() : "#ERROR#";
}Details about regex:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
http://www.regular-expressions.info/java.html
http://java.sun.com/docs/books/tutorial/essential/regex/
>
Thanks a lot for you helpLike I said, it's a bit of a messy solution. See if you can use (a part of) it.
Good luck.
Similar Messages
-
Replace string with regular expression
I am new to the regular expression. I am just trying to remove double quotes from a string.
My sample string is sql statement(SELECT "SCHEMA"."TABLE1"."COLUMN1", "SCHEMA"."TABLE1"."COLUMN2" FROM "SCHEMA"."TABLE1", "SCHEMA"."TABLE2" WHERE "SCHEMA"."TABLE1"."COLUMN1" = "SCHEMA"."TABLE2"."COLUMN1" );
This is what I came up with.
String s = query.replaceAll("\\.\"", ".").replaceAll("\"\\.", ".").replaceAll("\\s\"", " ").replaceAll("\\s\"", " ").replaceAll("\",", ",").replaceAll("\"\\s", " ");
But I want to optimize this line.
Could anybody tell me how to call replaceAll once with using regular expression instead of calling replaceAll multiple times? Some table or column names can have double quotes, so I want to remove the double quotes without replacing the double quotes which is part of the table or column name.
I'd appreciated it.caesarkim1 wrote:
I am new to the regular expression. I am just trying to remove double quotes from a string.
My sample string is sql statement(SELECT "SCHEMA"."TABLE1"."COLUMN1", "SCHEMA"."TABLE1"."COLUMN2" FROM "SCHEMA"."TABLE1", "SCHEMA"."TABLE2" WHERE "SCHEMA"."TABLE1"."COLUMN1" = "SCHEMA"."TABLE2"."COLUMN1" );
This is what I came up with.
String s = query.replaceAll("\\.\"", ".").replaceAll("\"\\.", ".").replaceAll("\\s\"", " ").replaceAll("\\s\"", " ").replaceAll("\",", ",").replaceAll("\"\\s", " ");
...Note that the following two lines are equivalent:
s = s.replaceAll("a","").replaceAll("b","");
s = s.replaceAll("a|b",""); -
Grouping & Back-references with regular expressions on Replace Text window
I really appreciate the inclusion of the Regular Expressions in the search & replace feature. One thing I am missing is back-references in the replacement expression. For instance, in the unix tools vi or sed, I might do something like this:
s/\(firstPart\) \(secondPart\) \(oldThirdPart\)/\2 \1 newThirdPart/g
which would allow me to switch the places of firstPart and secondPart, and totally replace thirdPart. If grouping and back-references are already present in the Replace Text window, how does one correctly invoke them?duplicate of Grouping & Back-references with regular expressions on Replace Text window
-
Get the string between li tags, with regular expression
I have a unordered list, and I want to store all the strings between the li tags (<li>.?</li>)in an array:
<ul>
<li>This is String One</li>
<li>This is String Two</li>
<li>This is String Three</li>
</ul>
This is what have so far:
<li>(.*?)</li>
but it is not correct, I only want the string without the li tags.
Thanks.No one?
Anoyone here experienced with Regular Expression? -
Assistance with Regular Expression and Tcl
Assistance with Regular Expression and Tcl
Hello Everyone,
I recently began learning Tcl to develop scripts for automating network switch deployments.
In my script, I want to name the device with a location and the last three octets of the base mac address.
I can get the Base MAC address by :
show version | include Base
Base ethernet MAC Address : 00:00:00:DB:CE:00
And I can get the last three octets of the MAC address using the following regular expression.
([0-9a-f]{2}[:-]){2}([0-9a-f]{2}$)
But I have not been able to figure out how to call the regular expression in the tcl script.
I have checked several resources but have not been able to figure it out. Suggestions?
Ultimately, I want to set the last three octets to a variable (something like below) and then call the variable when I name the switch.
set mac [exec "sh version | i Base"] (include the regular expression)
ios_config "hostname location$mac"
Thanks for any assistance in advance.
ChrisThis worked for me.
Switch_1(tcl)#set result [exec show ver | inc Base]
Base ethernet MAC Address : 00:1B:D4:F8:B1:80
Switch_1(tcl)#regexp {([0-9A-F:]{8}\r)} $result -> mac
1
Switch_1(tcl)#puts $mac
F8:B1:80
Switch_1(tcl)#ios_config "hostname location$mac"
%Warning! Hostname should contain at least one alphabet or '-' or '_' character
locationF8:B1:80(tcl)# -
How to search with regular expression
I make pdx files so that I can search text quickly. But Acrobat doesn't provide a way to search with regular expression. I'm wondering if there is a way that I don't know to search for regular expression in Acrobat Pro 9?
First, Acrobat must "mount" the PDX.
As "Find" does not use the cataloged index, use Shift+Ctrl+F to open the advanced search dialog.
It may be helpful to first enter Acrobat Preferences and for the Search category tick "Always use advanced search options".
Back to the Search dialog - use the drop down menu for "Look In" to pick "Select Index" then, if no PDXs show, click the Add button.
In the Open Index File dialog, browse to the location of the desired PDX and select it.
OK out and use "Return results containing" to pick a "Match ..." requirement or Boolean.
To become familiar with query syntax, for Acrobat, it is good to review Acrobat Help.
http://help.adobe.com/en_US/Acrobat/9.0/Professional/WS58a04a822e3e50102bd615109794195ff-7 c4b.w.html
Be well... -
Problem with Regular Expression
Hi There!!
I have a problem with regular expression. I want to validate that one word and second word are same. For that I have written a regex
Pattern p=Pattern.compile("([a-z][a-zA-Z]*)\\s\1");
Matcher m=p.matcher("nikhil nikhil");
boolean t=m.matches();
if (t)
System.out.println("There is a match");
else
System.out.println("There is no match");
The result I am getting is always "There is no match
Your timely help will be much appreciated.
RegardsRam wrote:
ErasP wrote:
You are missing a backward slash in the regex
Pattern p = Pattern.compile("([a-z][a-zA-Z]*)\\s\\1");
But this will fail in this case.
Matcher m = p.matcher("Nikhil Nikhil");It is the reason for that *[a-z]*.The OP had [a-z][a-zA-Z]* in his code, so presumably he know what that means and wants that String not to match. -
Replace with regular expression -complex logics
What is the best way to replace input string with following rules:
1. All occurences of two or more sequential Hyphen-symbols (symbol: "-") must be replaced with one hypen. So if input string was "---" then output should be "-". If input was "a-a-a" then output stays as it is.
2. All occurences of two or more sequential Space-symbols (symbol: " ") must be replaced with one Space. So if input string was " " then output should be " ". If input was "a a a" then output stays as it is.
3. After rules 1-2 are applied following rule apply: All occurences of Space-symbol followed immediately after Hypen-symbol or vice vers- hypen followed by Space must be replaced with Hypen. So if input string was " -" or "- " then output should be "-". If input was "a a-a" then output stays as it is.
4. After rules 1-2-3 are apllied following rule must be applied: String start and end symbol may not be Space or Hypen. So if input string was " a" or "-a" or "a " or "a-" then output should be "a".
All rules 1-4 must be apllied to input string.
Example of the replacement logic:
input: 'a aa ---- ss-ee -'
output: 'a aa-ss-ee'
I think i should use function "regexp_replace" somehow.
This solution below doesn't work because it outputs two consecuent hypens "--":
with t as(
select 'a aa ---- ss-ee -' str from dual
select regexp_replace(str, '--','-') a from t;
/*a aa -- ss-ee -*/Can you suggest one neat regular expression for that?SQL>with t as(
2 select 1 id,'a aa ---- ss-ee -' str from dual union
3 select 2, 'a aa -------- ss-ee ---- - - -' str from dual union
4 select 3, '-' str from dual union
5 select 4, '----- -- -a -' str from dual union
6 select 5, '-a-a-a-a----a-a-a-' str from dual
7 )
8 select id,
9 str,
10 trim(trim('-' from regexp_replace(str, '( |-){2,}', '\1'))) new_str,
11 length(str) len,
12 length(trim(trim('-' from regexp_replace(str, '( |-){2,}', '\1')))) new_len
13 from t;
ID STR NEW_STR LEN NEW_LEN
1 a aa ---- ss-ee - a aa ss-ee 19 10
2 a aa -------- ss-ee ---- - - - a aa ss-ee 34 10
3 - 1
4 ----- -- -a - a 13 1
5 -a-a-a-a----a-a-a- a-a-a-a-a-a-a 18 13 -
Extended Replace with Regular Expressions
I am trying to figure out how to user regular expressions in
HomeSite 5.5 extended search and replace.
I am trying to find all matches to: <span
class="someClass">FooText</span>
And replace with: <sometag>FooText</sometag>
I have been able to get the find part working with reg ex:
<span class=\"someClass\">*[A-Za-z0-9_
><.="']*</span>
However, I have not been able to figure out what to put in
the replace box. I have tried different combinations of syntax with
"\1" for the first match of the reg ex in the search field, but
nothing has worked.
Can someone help me out with the syntax for what I should
enter in the replace field?SQL>with t as(
2 select 1 id,'a aa ---- ss-ee -' str from dual union
3 select 2, 'a aa -------- ss-ee ---- - - -' str from dual union
4 select 3, '-' str from dual union
5 select 4, '----- -- -a -' str from dual union
6 select 5, '-a-a-a-a----a-a-a-' str from dual
7 )
8 select id,
9 str,
10 trim(trim('-' from regexp_replace(str, '( |-){2,}', '\1'))) new_str,
11 length(str) len,
12 length(trim(trim('-' from regexp_replace(str, '( |-){2,}', '\1')))) new_len
13 from t;
ID STR NEW_STR LEN NEW_LEN
1 a aa ---- ss-ee - a aa ss-ee 19 10
2 a aa -------- ss-ee ---- - - - a aa ss-ee 34 10
3 - 1
4 ----- -- -a - a 13 1
5 -a-a-a-a----a-a-a- a-a-a-a-a-a-a 18 13 -
[CC] Search&Replace: Bug only with Regular Expressions
Can you confirm the following behaviour/bug?
Steps to reproduce:
1 Create a new document in DW CC
2 Enter that text in the source code view:
<p>€</p>
3 Open Search&Replace
Field Search in: Current document
Field Search: Text
Field Search (3rd Field): €
Start Search
Result: As expected the "€" is found.
4 [x] Regular Expressions
Start Search
Result: "€" isn't found
Can you reproduce that?
Do you regard that as a bug like me?
If not, why please?
Do you think it is technically impossible for the developers to solve the task?
Do you think the developers forgot to gray out "text" in the choice box and allow regular expressions only in source code?
Thanks.Nice that you like the nick
Sure, I know that I can file a feature wish.
But my main interest in this forum is to know, what other users think about certain features, why they think so, which they miss, which they regard as a bug, ...
When I remember it right, you told me some time ago, that you don't use RegEx.
Than I understand, that everything around that feature is not important for you.
What I like to understand is, why you think the behaviour is logically.
For me it is the opposite.
You get a result with "Scope: Text", "[ ]RegEx".
And you get no result with "Scope: Text", "[x]RegEx".
Incredible strange.
I would appreciate, if you could explain more detailed your view. -
Replace replace with regular expression possible?
Hi,
Just another regular expression question!
I want to replace the words "AND", "OR", "NOT" in a sentence with the symbols '&', '|', '~' respectively.
Obviously very simple to do with 3 replace statements, just wonder if I can use regexp_replace to achieve it?
CheersHi,
Metacharacter symbols can be used in place of regular expressions.
Here's an implementation scenario:
http://www.oracle.com/technology/obe/obe10gdb/develop/regexp/regexp.htm
Hope it helps.
Regards,
Naveed. -
I have some sample code for string editing using regular expressions but I'm a little confused as to it's behavior. Here's what I have:
public class WordFixer
protected final String PUNC_MATCH = "[\\d\\p{Punct}]+";
protected final String PUNC_PREFIX = "^" + PUNC_MATCH;
protected final String PUNC_SUFFIX = PUNC_MATCH + "$";
public String fixPrefix (String w)
return w.replaceFirst(PUNC_PREFIX, "");
public String fixSuffix (String w)
return w.replaceFirst(PUNC_SUFFIX, "");
}This replaces all leading and trailing punctuation with "" and it works. However, changing the replaceFirst's to just replace doesn't work. I don't understand why that is. Doesn't the ^ mean in the front, and doesn't the $ mean in the back, so shouldn't this work by just changing replaceFirst to replace?JFactor2004 wrote:
I have some sample code for string editing using regular expressions but I'm a little confused as to it's behavior. Here's what I have:
public class WordFixer
protected final String PUNC_MATCH = "[\\d\\p{Punct}]+";
protected final String PUNC_PREFIX = "^" + PUNC_MATCH;
protected final String PUNC_SUFFIX = PUNC_MATCH + "$";
public String fixPrefix (String w)
return w.replaceFirst(PUNC_PREFIX, "");
public String fixSuffix (String w)
return w.replaceFirst(PUNC_SUFFIX, "");
}This replaces all leading and trailing punctuation with "" and it works. However, changing the replaceFirst's to just replace doesn't work. I don't understand why that is. The first parameter of the replaceFirst(...) is a regex-String. And the ^, $ and [...] stuff all have a special meaning in the regex language. The replace(...) method takes plain-Strings as a parameter, so the String "^\[\\d\\p{Punct}\]+" is interpreted as just that, without any special meaning.
JFactor2004 wrote:
Doesn't the ^ mean in the front, and doesn't the $ mean in the back, Yes, ^ means the start of the String (sometimes the start of a line) and $ means the end of the String (sometimes the end of a line).
JFactor2004 wrote:
so shouldn't this work by just changing replaceFirst to replace?Nope, see the explanation above. -
Match beginning of line with Regular Expression
I'm confused about dreamweaver's treatment of the characters
^ and $ (beginning of line, end of line) in regex searches. It
seems that these characters match the beginning of the file, not
the beginning of the various lines in the file. I would expect it
to work the other way around. A search like:
(^.)
should match every line in the file, so that a find/replace
could be performed at the beginning of each line, like this:
HELLO$1
which would add 'HELLO' at the start of each line in the
file.
Instead, this action only matches the first character of the
file, sticks 'HELLO' in front of it, and then quits (or moves on to
the next file). The endline character $ behaves in a similar
fashion, matching only the end of the file, not the end of each
line.
I've searched, and all the literature about regular
expressions in dreamweaver seems to indicate that I'm expecting the
correct behavior:
www.adobe.com/devnet/dreamweaver/articles/regular_expressions_03.html
quote:
^ Beginning of input or line ^T matches "T" in "This good
earth" but not in "Uncle Tom's Cabin"
$ End of input or line h$ matches "h" in "teach" but not in
"teacher"
Thanks for any insight, folks.Hi Winston,
I am still digesting the material from the regular expression book and will take sometime to become proficient with it.
It seems that using groupCount() to eliminate the unwanted text does not work in this case, since all the lines returned the same value. Ie 3 posted earlier. This may be because the patterns are complex and only a few were grouped together. Otherwise, could you provide an example using the string posted as opposed to a hyperthetic one. In the meantime, at least one solution have been found by defining an additional special pattern “\\A[^%].*\\Z”, before combining / intersecting both existing and the new special pattern to get the best of both world. Another approach that should also work is to evaluate the size of String.split() and only accept those lines with a minimum number of tokens.
Anyhow, I have come a crossed another minor stumbling block in the mean time with the following line, where some hidden characters is preventing the existing pattern from reading it:
o;?Mervan Bay 40 Boyde St 7 br t $250,000 X West Park AE
Below is the existing regular expression that works for other lines with the same pattern but not for special hidden characters such as “o;?”:
\\A([A-Z][a-z]*){1,2} [0-9]{0,4}/?[0-9]{0,4}-?[0-9]{0,4} ([A-Z][a-z]*){1,2} St|Rd|Av|Sq|Cl|Pl|Cr|Gr|Dr|Hwy|Pde|Wy|La [0-9] br [h|u|t] \\$\\d+,\\d+|\\$\\d*\\,\\d+,\\d+ ([A-Z][a-z]*){1,}\\ZIs it possible to come up with a regular expression to ignore them so that this line could be picked up? Would also like to know whether I could combine both the special pattern “\\A[^%].*\\Z” with existing one as opposed to using 2 separate patterns altogether?
Many thanks,
Jack -
Extract values with Regular Expression
How to extract values into [ ] using regular expression.
With data As
Select 'AAAAAA[10] AAA: 19C' Txt From Dual Union all
Select 'XX[450]-10A' Txt From Dual Union all
Select '[5]AVC19C' Txt From Dual Union all
Select 'FVD[120]D2AC' Txt From Dual
)I hope this return
10
450
5
120Thanks in advanceduser11118871 wrote:
Thanks for all.
Hi BluShadow, can you explain what this is doing!?
ThanksSure.
Search for ----------------| /------- Replace the found pattern in the search string with backreference 1
/------------\ /\ (the first thing backreferenced in the search string)
regexp_replace(txt, '^.*\[(.*)\].*$','\1')
|\/\/\--/\/\/|
| \ \ / \ \|
| | | | | |\- End of string
| | | | | |
| | | | | \- Any number of characters
| | | | |
| | | | \- Right square bracket (escaped)
| | | |
| | | \- any characters (backreferenced by round brackets)
| | |
| | \- Left square bracket (escaped)
| |
| \- Any number of characters
|
\- Start of stringEdited by: BluShadow on Jun 29, 2009 2:19 PM -
Need help with regular expression
I'm trying to use the java.util.regex package to extract URLs from html files.
The URLs that I am interested in extracting from the HTML look like the following:
<font color="#008000">http://forum.java.sun.com -
So, the URL is always preceeded by:
<font color="#008000">
and then followed by a space character and then a hyphen character. I want to be able to put all these URLs in a Vector object. This doesn't seem like it should be too difficult but for some reason I can't get anywhere with it. Any help would be greatly appreciated. Thanks!hi gupta am not sure of the java syntax but i can tell u about the regular expression...try this....
<font color="#008000">(http:\/\/[a-zA-Z0-9.]+) [-]
i dont know the java methods to call...just the reg exp...
Sanjay Acharya
Maybe you are looking for
-
Problem with stage and Error #1034
Hi! Well I'm newbie in AS, writing it only for a 5 days and I've come across error which gives me a lot headache. I was searching for solution to it for quite some time now and didnt understand what I suppose to do with solution. So, here is my probl
-
Setting the title font and axis labels in a graph created with the Report Generation Toolkit
I'm using the LabVIEW Report Generation Toolkit for Microsoft Office to generate Excel worksheets containing plots. Unfortunately, the default font size used in the plots is huge (see attached worksheet). I was able to use Excel Set Graph Font.vi to
-
Guys, Please help me. Tried to insert a DVD but slot-loading failed to suck in the disc. I was worried that the disc might clog or be stuck up inside. Its a good thing a portion(very tiny) of the disc is protruding from the slot. I carefully(using pl
-
I am just geting started with Sun-isms and Solarisisms (I'm a Linux guy), so please forgive me if I leave out some obvious piece of info :-) I'm working on a v240 via the net mgmt port I had copied a long line and pasted it into my terminal. About 70
-
Disabling Materialized View Logs for a session
Hi all. I was wondering if it is possible to disable the fast refresh log for materialized views for just a given session. So for all other sessions except this one the log would be added to. I'm using 11g. In Oracle Database 11g, The Complete Refere