You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写正则表达式提取文本中加粗的长度值

正则表达式提取文本中加粗的长度值

示例文本:

u01200.037.0225 3/8 2.1/4 25 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1 stahl
u01200.037.0200 3/8 2 inch 25 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1 stahl
u01200.037.0475 3/8 3/4 10 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1
04400.160.030 m16 30.0 preis anzeigen 50 + normen din ≈6921 ripp
fnlu1100095 d931 a2 6k schraube lubo m10x95/

你尝试的正则表达式:

.*d+[:|,]?\s?[a-z][0-9]|[\/][0-9]|x\s?(\d+[1-9]\s?.{0}*).*

解决方案

所有目标长度值都包裹在<strong>和</strong>标签之间,直接匹配这个区间的内容最直接可靠,正则表达式如下:

<strong>(.*?)</strong>

说明:

  • <strong>:匹配加粗起始标签
  • (.*?):非贪婪模式匹配标签内的所有内容(即需要提取的长度值),?避免匹配跨多个标签的冗余内容
  • </strong>:匹配加粗结束标签

使用示例(Python):

import re

text = """u01200.037.0225 3/8 <strong>2.1/4</strong> 25 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1 stahl
u01200.037.0200 3/8 <strong>2 inch</strong> 25 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1 stahl
u01200.037.0475 3/8 <strong>3/4</strong> 10 + normen asme b18.2.1 bs ≈1768 sechskantschrauben unc asme b18.2.1
04400.160.030 m16 <strong>30.0</strong> preis anzeigen 50 + normen din ≈6921 ripp
fnlu1100095 d931 a2 6k schraube lubo m10x<strong>95</strong>/"""

results = re.findall(r'<strong>(.*?)</strong>', text)
for res in results:
    print(res)

运行后输出:

2.1/4
2 inch
3/4
30.0
95

内容的提问来源于stack exchange,提问作者Angy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:25:41