首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从描述中捕获数据的Regex

从描述中捕获数据的Regex
EN

Stack Overflow用户
提问于 2009-04-01 19:58:37
回答 3查看 154关注 0票数 0

我需要一个正则表达式,它可以从这样的描述中捕获数据:

14Kt黄金母戒指152号,真紫水晶,真钻石,模拟翡翠,高级黄玉,优质电气石,真蓝宝石,雕刻:吉姆,杰克,约翰,杰夫,罗伯,桑迪,乐队雕刻:史密斯

我需要捕捉的是:

A)风格(风格152) (样式+任何数字)

( B)黄金(14 or黄金)(可以是14 or、10 or、黄色或白色的组合)

( C)石头(真紫水晶、真钻石、模拟翡翠、优质黄玉、优质电气石、真蓝宝石)(这可以改变多少,但总是至少1)

( D)雕刻物(吉姆、杰克、约翰、杰夫、罗伯、桑迪)(这可能是0或更多,而串雕:如果没有名字,就不会在那里)

( E)带状雕刻(smith) (这也是可选的,字符串带状刻划:如果没有名字,也不会在那里)

几个月来,我一直在做常规的表象,但这让我有点过意不去,因为它非常适合我,所以much...this是我遇到的最好的一个,但是如果字符串雕刻:消失了,那就不行了:

代码语言:javascript
复制
/(\d{2}.+gold).+(style \d+)(.+)engravings:([^\*]*)(\*)?(.*)/i

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2009-04-01 20:11:08

为什么不简单地把它分解成多个正则表达式呢?这样,您可以检查字符串中是否包含“凹版”,然后填充凹版值,或者将其保留为空白。

票数 1
EN

Stack Overflow用户

发布于 2009-04-01 20:19:41

最好是将其拆分为每个部分的多个正则表达式,但是您可以通过用圆括号包装它并添加一个?之后,(like this)?

票数 0
EN

Stack Overflow用户

发布于 2009-04-01 20:20:39

代码语言:javascript
复制
/(\d{2}.+gold).+(style \d+)(.+?)(engravings:.*?)?(band engraving:.*)?/i

可以做你想做的事

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/707097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档