我需要一个正则表达式,它可以从这样的描述中捕获数据:
14Kt黄金母戒指152号,真紫水晶,真钻石,模拟翡翠,高级黄玉,优质电气石,真蓝宝石,雕刻:吉姆,杰克,约翰,杰夫,罗伯,桑迪,乐队雕刻:史密斯
我需要捕捉的是:
A)风格(风格152) (样式+任何数字)
( B)黄金(14 or黄金)(可以是14 or、10 or、黄色或白色的组合)
( C)石头(真紫水晶、真钻石、模拟翡翠、优质黄玉、优质电气石、真蓝宝石)(这可以改变多少,但总是至少1)
( D)雕刻物(吉姆、杰克、约翰、杰夫、罗伯、桑迪)(这可能是0或更多,而串雕:如果没有名字,就不会在那里)
( E)带状雕刻(smith) (这也是可选的,字符串带状刻划:如果没有名字,也不会在那里)
几个月来,我一直在做常规的表象,但这让我有点过意不去,因为它非常适合我,所以much...this是我遇到的最好的一个,但是如果字符串雕刻:消失了,那就不行了:
/(\d{2}.+gold).+(style \d+)(.+)engravings:([^\*]*)(\*)?(.*)/i谢谢!
发布于 2009-04-01 20:11:08
为什么不简单地把它分解成多个正则表达式呢?这样,您可以检查字符串中是否包含“凹版”,然后填充凹版值,或者将其保留为空白。
发布于 2009-04-01 20:19:41
最好是将其拆分为每个部分的多个正则表达式,但是您可以通过用圆括号包装它并添加一个?之后,(like this)?
发布于 2009-04-01 20:20:39
/(\d{2}.+gold).+(style \d+)(.+?)(engravings:.*?)?(band engraving:.*)?/i可以做你想做的事
https://stackoverflow.com/questions/707097
复制相似问题