1)2003 CPT Code: 90801 - Psychiatric Diagnos...
2)y1983 Clinic Hospital, first hospitalization, ...
每当我尝试使用\b[\d]{4}\b
时,我都会从第一条语句中同时获得2003
和9080
,而第二条语句中却没有。
我想要的输出是第一行的2003
和第二行的1983
答案 0 :(得分:2)
您可以拒绝两边的数字,而不必匹配(?<!\d)\d{4}(?!\d)
:
public function properties()
{
return $this->belongsToMany(CarProperty::class,'car_car_properties');
}
答案 1 :(得分:1)
答案 2 :(得分:0)
以下正则表达式应将第一组捕获为数字:
(?<=\d\))[a-zA=Z]?(\d+)
我为您创建的示例在这里: https://regex101.com/r/RXJmFu/1
一个例子是:
s = ['1)2003 CPT Code: 90801 - Psychiatric Diagnos...',
'2)y1983 Clinic Hospital, first hospitalization, ...']
for match in s:
print(re.findall(r'(?<=\d\))[a-zA=Z]?(\d+)', match)[0])
输出:
2003
1983