从字符串中找到3个单词

时间:2014-07-05 16:41:24

标签: javascript regex

我遇到了如何使用正则表达式的问题,并且它已经半天搜索命令了,我希望有人可以帮我解决这个问题。

字符串:

ProductTable ChairStyleNewproductLocationUnited Kingdom

我想要的是,获取字词:Table ChairNewproduct,最后一个是United Kingdom。仅供参考,字符串中的空格很少。

谢谢

2 个答案:

答案 0 :(得分:2)

您必须发布更多输入,因为您的数据格式现在很模糊......

但我还是试着回答:

^\s*Product(.+?)Style(.+?)Location(.+?)\s*$

您的信息位于3个捕获的群组中。在我知道您正在使用的语言之前,我无法说出更多内容。

编辑:在JS中:

var re = /^\s*Product(.+?)Style(.+?)Location(.+?)\s*$/gm;
var inputString = "ProductTable ChairStyleNewproductLocationUnited Kingdom";
// Add another line of data
inputString += "\nProductDeskStyleOldproductLocationGermany";

var match;
while((match = re.exec(inputString))) {
    console.log({
        product: match[1],
        style: match[2],
        location: match[3]
    });
}

答案 1 :(得分:0)

在Python中:

>>> import re
>>> exp = r'^Product(?P<product>(.*?))Style(?P<style>(.*?))Location(?P<loc>(.*?))$'
>>> i = "ProductTable ChairStyleNewproductLocationUnited Kingdom"
>>> results = re.match(exp, i).groupdict()
>>> results['loc']
'United Kingdom'
>>> results['product']
'Table Chair'
>>> results['style']
'Newproduct'