Sponsored Content
Full Discussion: Help with pattern matching
Top Forums Programming Help with pattern matching Post 302403909 by redoubtable on Monday 15th of March 2010 05:17:16 AM
Old 03-15-2010
Quote:
Originally Posted by drewk
For the SPECIFIC example you posted, this works.

Code:
$ echo "[[something and something [[like this]] and this [[but]] here is [[what]].]] [[another big string [[with other]] substrings.]]" \
| perl -nle 'print "$1\n$2" if (/\[\[(.*\]\]\.)\]\]\s+(\[\[.*\.)\]\]/);'
something and something [[like this]] and this [[but]] here is [[what]].
[[another big string [[with other]] substrings.
$

Are the "[[" the delimiters of something? Are the ".]]" the break to a new string? If so, there may be an easier regex combined with global matches or a loop.

I cannot recommend more highly using an interactive regex tool. What seems hard is really easy when you see it working realtime.

I use RegExr: Online Regular Expression Testing Tool but there are others, including ones that duplicate the specific regex flavor you are using.
Yes, that works, but the problem is that the strings change in size and in number of substrings, and the .]] also may change!

Another example:
Code:
[[something is something]] [[and then I was [[wondering]] why is  [[this like so]]]] [[anyway I think [[that]] I [[can]] go to]]]] [[blabla]] [[bla bla [[foo]] [[bar]]]] [[foobar]] [[not]]

The [[ ]] are the delimiters of the string, however that string can have substrings ALSO delimited by [[ ]]

Thanks for your reply...
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

comment/delete a particular pattern starting from second line of the matching pattern

Hi, I have file 1.txt with following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433 ** ** ** In file 2.txt I have the following entries as shown: 0152364|134444|10.20.30.40|015236433 0233654|122555|10.20.30.50|023365433... (4 Replies)
Discussion started by: imas
4 Replies

2. UNIX for Dummies Questions & Answers

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (0 Replies)
Discussion started by: Siv_Pat
0 Replies

3. Shell Programming and Scripting

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (6 Replies)
Discussion started by: Siv_Pat
6 Replies

4. Shell Programming and Scripting

counting the lines matching a pattern, in between two pattern, and generate a tab

Hi all, I'm looking for some help. I have a file (very long) that is organized like below: >Cluster 0 0 283nt, >01_FRYJ6ZM12HMXZS... at +/99% 1 279nt, >01_FRYJ6ZM12HN12A... at +/99% 2 281nt, >01_FRYJ6ZM12HM4TS... at +/99% 3 283nt, >01_FRYJ6ZM12HM946... at +/99% 4 279nt,... (4 Replies)
Discussion started by: d.chauliac
4 Replies

5. Shell Programming and Scripting

sed - matching pattern one but not pattern two

All, I have the following file: -------------------------------------- # # /etc/pam.d/common-password - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services... (2 Replies)
Discussion started by: RobertBerrie
2 Replies

6. UNIX for Dummies Questions & Answers

Find pattern suffix matching pattern

Hi, I am trying to get a result out of this but fails please help. Have two files /tmp/1 & /tmp/hosts. /tmp/1 IP=123.456.789.01 WAS_HOSTNAME=abcdefgh.was.tb.dsdc /tmp/hosts 123.456.789.01 I want this result in /tmp/hosts if hostname is already there dont want duplicate entry. ... (5 Replies)
Discussion started by: rajeshwebspere
5 Replies

7. Shell Programming and Scripting

Sed: printing lines AFTER pattern matching EXCLUDING the line containing the pattern

'Hi I'm using the following code to extract the lines(and redirect them to a txt file) after the pattern match. But the output is inclusive of the line with pattern match. Which option is to be used to exclude the line containing the pattern? sed -n '/Conn.*User/,$p' > consumers.txt (11 Replies)
Discussion started by: essem
11 Replies

8. Shell Programming and Scripting

PHP - Regex for matching string containing pattern but without pattern itself

The sample file: dept1: user1,user2,user3 dept2: user4,user5,user6 dept3: user7,user8,user9 I want to match by '/^dept2.*/' but don't want to have substring 'dept2:' in output. How to compose such regex? (8 Replies)
Discussion started by: urello
8 Replies

9. UNIX for Dummies Questions & Answers

Grep -v lines starting with pattern 1 and not matching pattern 2

Hi all! Thanks for taking the time to view this! I want to grep out all lines of a file that starts with pattern 1 but also does not match with the second pattern. Example: Drink a soda Eat a banana Eat multiple bananas Drink an apple juice Eat an apple Eat multiple apples I... (8 Replies)
Discussion started by: demmel
8 Replies

10. Shell Programming and Scripting

Big pattern file matching within another pattern file in awk or shell

Hi I need to do a patten match between files . I am new to shell scripting and have come up with this so far. It take 50 seconds to process files of 2mb size . I need to tune this code as file size will be around 50mb and need to save time. Main issue is that I need to search the pattern from... (2 Replies)
Discussion started by: nitin_daharwal
2 Replies
EREGI_REPLACE(3)							 1							  EREGI_REPLACE(3)

eregi_replace - Replace regular expression case insensitive

SYNOPSIS
string eregi_replace (string $pattern, string $replacement, string $string) DESCRIPTION
This function is identical to ereg_replace(3) except that this ignores case distinction when matching alphabetic characters. Warning This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged. PARAMETERS
o $pattern - A POSIX extended regular expression. o $replacement - If $pattern contains parenthesized substrings, $replacement may contain substrings of the form digit, which will be replaced by the text matching the digit'th parenthesized substring; will produce the entire contents of string. Up to nine substrings may be used. Parentheses may be nested, in which case they are counted by the opening parenthesis. o $string - The input string. RETURN VALUES
The modified string is returned. If no matches are found in $string, then it will be returned unchanged. EXAMPLES
Example #1 Highlight search results <?php $pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')'; $replacement = '\1<span class="search">\2</span>'; $body = eregi_replace($pattern, $replacement, $body); ?> NOTES
Note As of PHP 5.3.0, the regex extension is deprecated in favor of the PCRE extension. Calling this function will issue an E_DEPRECATED notice. See the list of differences for help on converting to PCRE. Tip eregi_replace(3) is deprecated as of PHP 5.3.0. preg_replace(3) with the i ( PCRE_CASELESS) modifier is the suggested alternative. SEE ALSO
ereg(3), eregi(3), ereg_replace(3), preg_replace(3), quotemeta(3). PHP Documentation Group EREGI_REPLACE(3)
All times are GMT -4. The time now is 08:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy