带“OR”和$end-of-lin的python正则表达式

2024-07-05 14:34:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3种不同类型的字符串,我试图在其中匹配一种模式: 图案:

  1. edf\ u abc\ u abc\ u XS123456789\ u 1234567
  2. abcdedf\ u abc\ u abc\ u AB\ u 1234567\ u 2014/03/17
  3. yong cheng cheng zhu yong cheng zhu xyz\u 12354yong cheng zhu 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 |伺服将匹配Crow或伺服,而不是Cro、w或S以及ervo。”

A和B必须是正则表达式。我猜$不是正则表达式。你知道吗


Tags: 字符串re类型searchstring模式abc图案
1条回答
网友
1楼 · 发布于 2024-07-05 14:34:57
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

Regular expression visualization

Debuggex Demo

相关问题 更多 >