如何使用正则表达式缩小此值?

时间:2017-01-13 17:33:02

标签: javascript regex

我正在尝试使用

之类的字符串
  

结果,其中srn.firsttname如'Chicken%'和coalesce(sri.DocumentType_id,0)不在(71,72,70,69)并且srn.lastname如'Alfredo%'

返回

  

结果srn.lastname如'Chicken%'和srn.firstname如'Alfredo%'

使用正则表达式?我没有在网上找到任何帮助。

这是我的代码,不是正则表达式:

function stringSlicer(userInput) {
    var frontStringLength = 0;
    var middlecut = 1;
    var slicer = 0;

    for (var i = 0; i < userInput.length; i++) {
        if (userInput.substring(i, 1) === "(") {
            frontStringLength = i - 13;
            break;
         }
    }

    for (var j = 0; j < userInput.length; j++) {
        if (userInput.substring(j, 1) !== ")") {
            middlecut += 1;
        }
        else if (userInput.substring(j, 1) === ")") {
            middlecut += 1;
            slicer += 1;
            if (slicer === 2) {
                break;
            }
        }
    }

    var result = userInput.substring(0, frontStringLength) +     userInput.substring(frontStringLength + middlecut);
    return result;
}

谢谢!

2 个答案:

答案 0 :(得分:0)

将字符串分成括号组,以便您可以使用替换字符串和匹配的组重新排列结果。 (string.match example此处)。

模式:

(.*?)(srn\.firsttname)( like '%?\w+%?' and )(.*?)(srn\.lastname)(.*)

替换字符串(反转组2和5并丢弃4):

$1$5$3$2$6

demo

答案 1 :(得分:-1)

这样的事情?

mystring.replace(/(.+'Chicken%')(.+)(and.+)/g, "$1$3");

它会删除Chicken%和最后and之间的所有内容,假设字符串都相似。