作者:心语忆录_288 | 来源:互联网 | 2024-09-26 12:41
1)2003 CPT Code: 90801 - Psychiatric Diagnos...
2)y1983 Clinic Hospital,first hospitalization,...
每当我尝试使用\b[\d]{4}\b
时,我都会从第一条语句中同时获得2003
和9080
,而第二条语句中却没有。
我想要的输出是第一行的2003
和第二行的1983
您可以拒绝两边的数字,而不必匹配(?
:
public function properties()
{
return $this->belongsToMany(CarProperty::class,'car_car_properties');
}
https://regex101.com/r/shVhnT/1/
,
这是因为您开头有\b
,这意味着要在单词边界处匹配数字,而y1983
与条件不匹配。您可以试试看
\b\D?(\d{4})\b
在demo上查看说明
,
以下正则表达式应将第一组捕获为数字:
(?<=\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