Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过查看后面的Python正则表达式编号_Python_Regex - Fatal编程技术网

通过查看后面的Python正则表达式编号

通过查看后面的Python正则表达式编号,python,regex,Python,Regex,我正在提取这种格式字符串中的数字 AB1234 AC1234 公元1234年 正如您所看到的,A始终存在,第二个字符排除了“。我在下面写代码来提取数字 re.search(r'(?<=A[^"])\d*',input) re.search(r'(?您的示例中的正则表达式有效,因此我猜您的实际模式具有可变宽度的字符匹配(*,+,等等)。不幸的是,正则表达式看起来落后,不支持这些。作为替代方法,我可以建议使用捕获组并提取匹配字符串- m = re.search(r'A\D+(\d+)',

我正在提取这种格式字符串中的数字

  • AB1234
  • AC1234
  • 公元1234年
正如您所看到的,
A
始终存在,第二个字符排除了
。我在下面写代码来提取数字

re.search(r'(?<=A[^"])\d*',input)

re.search(r'(?您的示例中的正则表达式有效,因此我猜您的实际模式具有可变宽度的字符匹配(
*
+
,等等)。不幸的是,正则表达式看起来落后,不支持这些。作为替代方法,我可以建议使用捕获组并提取匹配字符串-

m = re.search(r'A\D+(\d+)', s)
if m:
    r = m.group(1)
详细信息

A      # your word 
\D+    # anything that is not a digit
(      # capture group
\d+    # 1 or more digits
)

如果要处理双引号,可以通过包含字符类对正则表达式进行轻微修改-

r'A[^\d"]+(\d+)'

Tye改为使用此正则表达式:

re.search(r'(?=A[^"]\d*)\d*',input)

呃,这样行。检查你的实际代码。无论如何,为什么不使用捕获组?
r'a\D+(\D+)
@cᴏʟᴅsᴘᴇᴇᴅ 你能为r'A\D+(\D+)发布你的答案吗?或者:
re.search(r'A[^”](\D*),input.group(1)