Regular Expression for the special character | pipe

2014-05-27 Thread Aman Kashyap
I would like to create a regular expression in which i can match the | 
special character too.

e.g.

start=|ID=ter54rt543d|SID=ter54rt543d|end=|

I want to only |ID=ter54rt543d| from the above string but i am unable to write 
the  pattern match containing | pipe too.

By default python treat | as an OR operator.

But in my case I want to use to as a part of search string.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Vlastimil Brom
2014-05-27 12:59 GMT+02:00 Aman Kashyap amankashyap1...@gmail.com:
 I would like to create a regular expression in which i can match the | 
 special character too.

 e.g.

 start=|ID=ter54rt543d|SID=ter54rt543d|end=|

 I want to only |ID=ter54rt543d| from the above string but i am unable to 
 write the  pattern match containing | pipe too.

 By default python treat | as an OR operator.

 But in my case I want to use to as a part of search string.
 --

Hi,
you can just escpape the pipe with backlash like any other metacharacter:

rstart=\|ID=ter54rt543d

be sure to use the raw string notation r..., or you can double all
backslashes in the string.

hth,
   vbr
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Aman Kashyap
On Tuesday, 27 May 2014 16:39:19 UTC+5:30, Vlastimil Brom  wrote:
 2014-05-27 12:59 GMT+02:00 Aman Kashyap amankashyap1...@gmail.com:
 
  I would like to create a regular expression in which i can match the | 
  special character too.
 
 
 
  e.g.
 
 
 
  start=|ID=ter54rt543d|SID=ter54rt543d|end=|
 
 
 
  I want to only |ID=ter54rt543d| from the above string but i am unable to 
  write the  pattern match containing | pipe too.
 
 
 
  By default python treat | as an OR operator.
 
 
 
  But in my case I want to use to as a part of search string.
 
  --
 
 
 
 Hi,
 
 you can just escpape the pipe with backlash like any other metacharacter:
 
 
 
 rstart=\|ID=ter54rt543d
 
 
 
 be sure to use the raw string notation r..., or you can double all
 
 backslashes in the string.
 
 
 
 hth,
 
vbr


Thanks vbr for the quick response.

I have string = |SOH=|ID=re65dgt5dd|DS=fjkjf|SDID=fhkhkf|ID=fkjfkf|EOM=|

and want to replace 2 sub-strings
|ID=re65dgt5dd| with |ID=MAN|
|ID=fkjfkf| with |MAN|

I am using regular expression ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*|$

the output is |SOH=|ID=MAN|DS=fjkjf|SDID=MAN|ID=MAN|EOM=|ID=MAN

expected value is = |SOH=|ID=MAN|DS=fjkjf|SDID=fhkhkf|ID=MAN|EOM=|

could you please help me in this regard?
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Daniel

What about skipping the re and try this:

'start=|ID=ter54rt543d|SID=ter54rt543d|end=|'.split('|')[1][3:]

On 27.05.2014 14:09, Vlastimil Brom wrote:

2014-05-27 12:59 GMT+02:00 Aman Kashyap amankashyap1...@gmail.com:

I would like to create a regular expression in which i can match the | 
special character too.

e.g.

start=|ID=ter54rt543d|SID=ter54rt543d|end=|

I want to only |ID=ter54rt543d| from the above string but i am unable to write the  
pattern match containing | pipe too.

By default python treat | as an OR operator.

But in my case I want to use to as a part of search string.
--

Hi,
you can just escpape the pipe with backlash like any other metacharacter:

rstart=\|ID=ter54rt543d

be sure to use the raw string notation r..., or you can double all
backslashes in the string.

hth,
vbr


--
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Aman Kashyap
On Tuesday, 27 May 2014 16:59:38 UTC+5:30, Daniel  wrote:
 What about skipping the re and try this:
 
 
 
 'start=|ID=ter54rt543d|SID=ter54rt543d|end=|'.split('|')[1][3:]
 
 
 
 On 27.05.2014 14:09, Vlastimil Brom wrote:
 
  2014-05-27 12:59 GMT+02:00 Aman Kashyap amankashyap1...@gmail.com:
 
  I would like to create a regular expression in which i can match the | 
  special character too.
 
 
 
  e.g.
 
 
 
  start=|ID=ter54rt543d|SID=ter54rt543d|end=|
 
 
 
  I want to only |ID=ter54rt543d| from the above string but i am unable to 
  write the  pattern match containing | pipe too.
 
 
 
  By default python treat | as an OR operator.
 
 
 
  But in my case I want to use to as a part of search string.
 
  --
 
  Hi,
 
  you can just escpape the pipe with backlash like any other metacharacter:
 
 
 
  rstart=\|ID=ter54rt543d
 
 
 
  be sure to use the raw string notation r..., or you can double all
 
  backslashes in the string.
 
 
 
  hth,
 
  vbr

Thanks for the response.

I got the answer finally.

This is the regular expression to be 
used:\\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\\|
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Wolfgang Maier

On 27.05.2014 13:39, Aman Kashyap wrote:

On 27.05.2014 14:09, Vlastimil Brom wrote:


you can just escpape the pipe with backlash like any other metacharacter:

rstart=\|ID=ter54rt543d

be sure to use the raw string notation r..., or you can double all



backslashes in the string.



Thanks for the response.

I got the answer finally.

This is the regular expression to be 
used:\\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\\|



or, and more readable:

r'\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\|'

This is what Vlastimil was talking about. It saves you from having to 
escape the backslashes.


--
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Roy Smith
In article mailman.10370.1401191774.18130.python-l...@python.org,
 Wolfgang Maier wolfgang.ma...@biologie.uni-freiburg.de wrote:

 On 27.05.2014 13:39, Aman Kashyap wrote:
  On 27.05.2014 14:09, Vlastimil Brom wrote:
 
  you can just escpape the pipe with backlash like any other metacharacter:
 
  rstart=\|ID=ter54rt543d
 
  be sure to use the raw string notation r..., or you can double all
 
  backslashes in the string.
 
  Thanks for the response.
 
  I got the answer finally.
 
  This is the regular expression to be 
  used:\\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\\|
 
 
 or, and more readable:
 
 r'\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\|'
 
 This is what Vlastimil was talking about. It saves you from having to 
 escape the backslashes.

Sometimes what I do, instead of using backslashes, I put the problem 
character into a character class by itself.  It's a matter of personal 
opinion which way is easier to read, but it certainly eliminates all the 
questions about how many backslashes do I need?

 r'[|]ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*[|]'

Another thing that can help make regexes easier to read is the VERBOSE 
flag.  Basically, it ignores whitespace inside the regex (see 
https://docs.python.org/2/library/re.html#module-contents for details).  
So, you can write something like:

pattern = re.compile(r'''[|]
 ID=
 [a-z]*
 [0-9]*
 [a-z]*
 [0-9]*
 [a-z]*
 [|]''',
 re.VERBOSE)

Or, alternatively, take advantage of the fact that Python concatenates 
adjacent string literals, and write it like this:

pattern = re.compile(r'[|]'
 r'ID='
 r'[a-z]*'
 r'[0-9]*'
 r'[a-z]*'
 r'[0-9]*'
 r'[a-z]*'
 r'[|]'
)
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Regular Expression for the special character | pipe

2014-05-27 Thread Mark Lawrence

On 27/05/2014 12:39, Aman Kashyap wrote:

On Tuesday, 27 May 2014 16:59:38 UTC+5:30, Daniel  wrote:

What about skipping the re and try this:



'start=|ID=ter54rt543d|SID=ter54rt543d|end=|'.split('|')[1][3:]



On 27.05.2014 14:09, Vlastimil Brom wrote:


2014-05-27 12:59 GMT+02:00 Aman Kashyap amankashyap1...@gmail.com:



I would like to create a regular expression in which i can match the | 
special character too.







e.g.







start=|ID=ter54rt543d|SID=ter54rt543d|end=|







I want to only |ID=ter54rt543d| from the above string but i am unable to write the  
pattern match containing | pipe too.







By default python treat | as an OR operator.







But in my case I want to use to as a part of search string.



--



Hi,



you can just escpape the pipe with backlash like any other metacharacter:







rstart=\|ID=ter54rt543d







be sure to use the raw string notation r..., or you can double all



backslashes in the string.







hth,



 vbr


Thanks for the response.

I got the answer finally.

This is the regular expression to be 
used:\\|ID=[a-z]*[0-9]*[a-z]*[0-9]*[a-z]*\\|



I'm pleased to see that you have answers.  In return would you please 
use the mailing list 
https://mail.python.org/mailman/listinfo/python-list or read and action 
this https://wiki.python.org/moin/GoogleGroupsPython to prevent us 
seeing double line spacing and single line paragraphs, thanks.


--
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.


Mark Lawrence

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


--
https://mail.python.org/mailman/listinfo/python-list