[英]python regular expression with “OR” and $ end of line
我嘗試匹配一種模式的字符串有3種:模式:
在每種情況下,我都想匹配“ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.