簡體   English   中英

帶有“ OR”和$行尾的python正則表達式

[英]python regular expression with “OR” and $ end of line

我嘗試匹配一種模式的字符串有3種:模式:

  1. abcdedf_abc_abc_XS123456789_1234567
  2. abcdedf_abc_abc_AB_1234567_2014 / 03/17
  3. abcdef_abcdf_abc_xyz_12354AB12_1234567

在每種情況下,我都想匹配“ 1234567”

我嘗試過的代碼是:

m = re.search(r'_[0-9]+_|$',string)
m = re.search(r'_[0-9]+[_]|$',string)

似乎沒有人給我想要的結果。

http://docs.python.org/2/howto/regex.html中我讀到了:

“替代,或“或”運算符。如果A和B是正則表達式,則A | B將匹配與A或B匹配的任何字符串。|具有較低的優先級,以便使其在交替多行時合理地工作-字符串。Crow| Servo將匹配Crow或Servo,而不是Cro,'w'或'S'和ervo。

A和B必須是正則表達式。 我猜$不是一個正則表達式。

strings = [
"abcdedf_abc_abc_XS123456789_1234567",
"abcdedf_abc_abc_AB_1234567_2014/03/17",
"abcdef_abcdf_abc_xyz_12354AB12_1234567"
]

import re
pattern = re.compile(r"(?<=_)\d+(?=_|$)")
for item in strings:
    print pattern.search(item).group()

輸出量

1234567
1234567
1234567

正則表達式可視化

Debuggex演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM