rally 发表于 2021-8-6 10:18:34

正则提取信息 - 已解决

本帖最后由 rally 于 2021-8-6 10:55 编辑

贴片电容 1uF/16V X7R 0603 10%想提取   1uf,16V,7R,0603,10%
贴片电阻 10K 0402 5%想提取10K,0402,5%

$string = "贴片电阻 4.7K 0402 5%"
Local $search =StringRegExp($string, '([\d.]+\w+)', 3)
_ArrayDisplay($search)


能够提取 4.7K,0402 , 但 5%这个格式的如何同步能提取出来? 求帮指点一下,正则

zghwelcome 发表于 2021-8-6 10:34:30

试试:   [\w\.%]+

风行者 发表于 2021-8-6 10:34:53

楼上好快
#include <Array.au3>
$string = "贴片电阻 4.7K 0402 5%"
Local $search =StringRegExp($string, '([\w\.%]+)', 3)
_ArrayDisplay($search)

rally 发表于 2021-8-6 10:54:51

谢谢 ,感谢各路高手指点 :face (33):

afan 发表于 2021-8-6 10:55:24

本帖最后由 afan 于 2021-8-6 11:04 编辑


Highlight code by AuREHelper
\d+[\w%.](?#)+

rally 发表于 2021-8-6 10:57:18

都可以,afan大大的和上面的有什么区别啊?

rally 发表于 2021-8-6 10:58:41

经测试,afan大大的更精确一些,数字+字母,数字+字符的模式

afan 发表于 2021-8-6 11:04:42

rally 发表于 2021-8-6 10:58
经测试,afan大大的更精确一些,数字+字母,数字+字符的模式

上面修改了下,漏了个点

itzyx 发表于 2021-8-6 11:58:33

afan 发表于 2021-8-6 10:55


A大您好长时间没冒泡了,久违的亲切感

rally 发表于 2021-8-6 12:07:24

afan大大,'[\d.]+[\w%.](?#)+','\d+[\w%.](?#)+' ,'[\d.]+[\w%](?#)+'   ,这几个我测的结果都一样,点加在\d后面和\W后面有区别吗?

afan 发表于 2021-8-6 13:09:21

itzyx 发表于 2021-8-6 11:58
A大您好长时间没冒泡了,久违的亲切感

只要有空还是会来溜达一圈 :face (33):

afan 发表于 2021-8-6 13:14:52

rally 发表于 2021-8-6 12:07
afan大大,'[\d.]+[\w%.](?#)+','\d+[\w%.](?#)+' ,'[\d.]+[\w%](?#)+'   ,这几个我测的结果都一样,点 ...

虽然在这里的例子中可以得到一样的结果,但是,如果必须是数字开头的话,那 [\d.] 的表达就不正确了,因为这是指 数字或点 都可以,那样如果是 点 开头的话会首先捕获到 点,虽然你这里不会有这种情况。

rally 发表于 2021-8-6 13:22:56

afan 发表于 2021-8-6 13:14
虽然在这里的例子中可以得到一样的结果,但是,如果必须是数字开头的话,那 [\d.] 的表达就不正确了,因 ...

感谢有afan大大,每次都有您给指点迷津
页: [1]
查看完整版本: 正则提取信息 - 已解决