Javascript 查找字符串并使用下一个字符串提取

Javascript 查找字符串并使用下一个字符串提取,javascript,regex,Javascript,Regex,我有一个包含地址的字符串。我想检查地址是否包含单词“Flat”,如果包含,请提取它旁边的Flat数字 固定数字可以是一位、两位、三位或四位数字 “flat”一词可以出现在字符串的任何部分(即不只是在开头),但只能出现一次 下面是一个示例字符串: Flat 62, Selig Court, Beverley Gardens, London 或 我希望结果是: Flat 62 我正试图用JavaScript实现这一点。完全基于您所说的:- > "Selig Court, Flat 62

我有一个包含地址的字符串。我想检查地址是否包含单词“Flat”,如果包含,请提取它旁边的Flat数字

  • 固定数字可以是一位、两位、三位或四位数字
  • “flat”一词可以出现在字符串的任何部分(即不只是在开头),但只能出现一次
下面是一个示例字符串:

Flat 62, Selig Court, Beverley Gardens, London

我希望结果是:

Flat 62

我正试图用JavaScript实现这一点。

完全基于您所说的:-

> "Selig Court, Flat 62, Beverley Gardens, London".match(/(Flat \d{1,4})/)[0]
'Flat 62'
> "Flat 62, Selig Court, Beverley Gardens, London".match(/(Flat \d{1,4})/)[0]
'Flat 62'
试试这个正则表达式

/Flat\s+(\d+)/gi
解释

  • Flat\s+
    允许在
    Flat
  • (\d+)
    与数字匹配
范例

"Flat 62, Selig Court, Beverley Gardens, London".match(/Flat\s(\d+)/gi); //["Flat 62"]

这里有几行应该做的技巧。 字符串仅用于演示,如console.log,让我们重点关注示例的内容

myRegexp是一个正则表达式,我将使用它尝试从字符串捕获。请记住,您必须在//之间定义它。至于它的内容,我匹配的要么是一个单位,要么是单位后跟空格,然后是1-4位数。这是基于您提供的信息。所以它在1号楼或33号楼不起作用

var myString = "Flat 62, Selig Court, Beverley Gardens, London";
var myRegexp = /((Flat|flat) \d{1,4})/g;
var match = myRegexp.exec(myString);
console.log(match[1]);
对于匹配,我只是说hey regex,exec on this string和save capture groups。如果与给定的字符串捕获组匹配,则获取您的信息

请参见您给出的两个示例中的实际解决方案:

我只解释了核心部分,或者更确切地说是烹饪书,如何解决这个问题。如果你想在实践中使用正则表达式,还有很多东西需要学习。谷歌是你的朋友。

你可以看到这样的例子:

    var str = "Flat 62, Selig Court, Beverley Gardens, London";
    var patt1 = /\w+\s\d+/g; 
    var result = str.match(patt1);

你不能在谷歌上搜索正则表达式生成器?我觉得这是一个你甚至没有尝试解决的家庭作业:(
我正试图用JavaScript来做这件事。
请发布您当前遇到问题的代码,以便我们可以了解您的尝试不起作用的原因。使用您的代码,请查看-就目前情况而言,您的问题应以
主要基于意见的
或类似方式结束,因为您没有给出您希望如何解决问题的指示他的问题,但只是张贴要求。
    var str = "Flat 62, Selig Court, Beverley Gardens, London";
    var patt1 = /\w+\s\d+/g; 
    var result = str.match(patt1);