Regular Expression for the special character | pipe
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 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
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
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
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
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
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
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