通过正则表达式进行增量分组

时间:2018-10-07 08:53:34

标签: javascript regex

我正在尝试使用Javascript构建正则表达式,以创建带有增量文本的组,但是不知道是否可以通过正则表达式来完成

我有以下字符串:

澳大利亚新南威尔士州鲍尔汉姆山的GALLUPER SUPERSTORE

我想构建的是一个匹配/创建以下组的正则表达式:

class Program {
    static void Main(string[] args) {

        Stopwatch sw = Stopwatch.StartNew();

        string fil1 = "C:\Users\mariu\Desktop\Jobboppgave\CaseConsoleApp\Prisfile.txt";

        ***var f = System.IO.File.OpenRead(fil1);***
        int length = (int)(new System.IO.FileInfo(fil1).Length);

到目前为止,我已经成功使用正则表达式用一个单词匹配/创建了一个组:

Group 1: AUSTRALIA
Group 2: NSW AUSTRALIA
Group 3: HILL NSW AUSTRALIA
Group 4: BAUKHAM HILL NSW AUSTRALIA
Group 5: SUPERSTORE BAUKHAM HILL NSW AUSTRALIA

但这会创建5个带有单个单词的组:

/(?:\s(\w+))/gi

我显然可以使用循环来完成我想实现的目标,但是我想知道单个正则表达式是否可以创建相同的输出。

谢谢!

1 个答案:

答案 0 :(得分:1)

就像Wiktor所说的那样,您可以编写一些代码来代替regex来执行。这是相同的JavaScript代码。尝试玩,

<html>

<head>
  <script>
    function abc(s) {
      var tokens = s.split(" ");
      var ss = "";
      for (var i = 1; i < tokens.length; i++) {
        for (var j = tokens.length - i; j < tokens.length; j++) {
          ss += tokens[j];
          if (j + 1 < tokens.length) {
            ss += " ";
          }
        }
        ss += "<br/>";
      }
      document.getElementById("demo").innerHTML = ss;
    }
  </script>

  <body>

    <input type="text" id='intxt' value='GALLUPER SUPERSTORE BAULKHAM HILL NSW AUSTRALIA' size="100" />
    <button type="button" onclick="abc(document.getElementById('intxt').value)">Click here to see demo</button>
    <p id="demo"></p>
  </body>

</html>