Mixrelax 发表于 2019-11-7 16:00:37

求一正则 提取 123Of-34ce

$Filename='099-申-宇-123Of-34ce-10元-静-黑'
$Match=StringRegExp($Filename, '.*?[宇|么]-(.*?)-[\d+].*',3)
If $Match<>0 Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Filename = ' & $Match & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

Mixrelax 发表于 2019-11-7 16:02:07

我想得到123of-32ce 但是却得到123of

afan 发表于 2019-11-7 16:07:24

[宇么]-(.*?)-\d+元

Mixrelax 发表于 2019-11-7 16:14:11

afan 发表于 2019-11-7 16:07


但是 有些情况下没有 元?
像这种 得到的还是123of
099-申-宇-123Of-34ce-10-静-黑

afan 发表于 2019-11-7 16:18:22

Mixrelax 发表于 2019-11-7 16:14
但是 有些情况下没有 元?
像这种 得到的还是123of
099-申-宇-123Of-34ce-10-静-黑

所以 提问就应该将可能的情况尽量都描述出来,免得打乒乓球
[宇么]-([^-]+-[^-]+)

Mixrelax 发表于 2019-11-7 16:22:51

afan 发表于 2019-11-7 16:18
所以 提问就应该将可能的情况尽量都描述出来,免得打乒乓球

知道了afan老师,还有最后一个球我要打回去,等着接
就是有些情况下它没有前面的 如何将它括起来 加个?号呢?
123Of-34ce-10-静-黑
用这个正则 出不来结果

afan 发表于 2019-11-7 16:52:29

([^-]+-[^-]+)-[^-]+-[^-]+-[^-]+$

Mixrelax 发表于 2019-11-7 17:06:24

本帖最后由 Mixrelax 于 2019-11-7 17:08 编辑

afan 发表于 2019-11-7 16:52

原来正则 不支持运算
$Match=StringRegExp('099-申-么-123Of34ce-210-静-黑', '([^-]+-[^-]+)-[^-]+-[^-]+-[^-]+$',1)
$taobaoID=StringRegExpReplace($Match, '[宇么]-(.*?)','$1')
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $taobaoID = ' & $taobaoID & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

来个 正则替换 过滤掉正则后的结果 问题就此解决。谢谢afan老师的耐心指导。

afan 发表于 2019-11-7 18:20:06

Mixrelax 发表于 2019-11-7 17:06
原来正则 不支持运算
$Match=StringRegExp('099-申-么-123Of34ce-210-静-黑', '([^-]+-[^-]+)-[^-]+-[^ ...

你这又变了…… 让你贴出尽量多的情况看来是不指望了。
就目前的这四五种情况而言,通用的 \w+-\w+
页: [1]
查看完整版本: 求一正则 提取 123Of-34ce