Javascript 正则模式匹配连接

Javascript 正则模式匹配连接,javascript,c#,regex,visual-studio-2013,string-concatenation,Javascript,C#,Regex,Visual Studio 2013,String Concatenation,我试图在我的解决方案中找到一些编码风格的模式。用例是我必须在razor中用StringBuilder替换所有字符串连接,并在JavaScript中查找所有字符串连接。我发现很难通过以下两种方式获得所有具有字符串串联的代码行 1) str = str+str2+str3+"str4 " etc; 2) str+=str2+str3+"str4 " etc; 我试着使用VS2013的查找工具,用字符+搜索,我得到了很多行。请帮助我以上2种代码行样式的reg ex模式,这样至少行数会减少。我发现很难

我试图在我的解决方案中找到一些编码风格的模式。用例是我必须在razor中用
StringBuilder
替换所有字符串连接,并在
JavaScript
中查找所有字符串连接。我发现很难通过以下两种方式获得所有具有字符串串联的代码行

1) str = str+str2+str3+"str4 " etc;
2) str+=str2+str3+"str4 " etc;
我试着使用VS2013的查找工具,用字符
+
搜索,我得到了很多行。请帮助我以上2种代码行样式的reg ex模式,这样至少行数会减少。我发现很难获得上述两种代码风格的注册表项

([\w_]+[\w\d]*)(?:\s*=\s*\1{1}\s*\+\s*|\s*\+=\s*)("?[\w_]+[\w\d]*"?)(\s*\+\s*"?([\w_]+[\w\d]*"?))*;
这里我假设变量可以以下划线或字母字符开头。如果需要,您可能需要对其进行一些更改


可能类似于:

(\w+ = \w+\+\w)|(\w+\s?\+=\s?\w+)

请记住变量命名约定,变量名可以以
\uuu
[A-Za-z]
开头。此正则表达式匹配所有此类串联实例

正则表达式:
([A-Za-z\uw+)\s*\+?=\s*(\1\s*)?(\+?\s*([A-Za-z\uw+)”?*)

说明:

  • ([A-Za-z]\w+)
    匹配变量名,该变量名以
    \u
    [A-Za-z]
    开头,后跟
    word
    类中的任何字符

  • \s*\+?
    可选
    空白
    +
    以匹配速记连接运算符

  • \s*(\1\s*)?
    如果不使用速记运算符,则这将匹配传统的连接方式

  • (\+?\s*([A-Za-z\uw+)”?*
    必须出现的后续变量名。这些可能是零或多个。这也可以是像
    “hello world”
    这样的文本字符串,也可以匹配HTML数据


这些字符串的预期输出是什么?我不需要任何输出。有些人使用样式1进行连接,有些人使用第二种方式。我需要使用VS2013的查找(ctrl+f)功能并查找这样的代码行。所以我可以用stringbuilder替换它们。所以变量名可以是除
str
str2
之外的任何名称?是的。它可以是任何东西,但LHS和RHS上的值应该匹配。当使用速记运算符
+=
时,右边只能有一个值
str+=str2+str3+“str4”
无效。谢谢您的回答。它在某种程度上起了作用。就像它是为这种语句工作的strCloseHTML=strCloseHTML+PagingControlHTML;但不适用于以下类型的语句strowtml=strowtml+“”;有个问题,链接上写着2个匹配,8293步。如果我们有大量的投入,性能会受到影响吗?海报应该使用(readline())方法吗?哎哟,你想让它也能匹配html代码吗?用正则表达式做这样的事情会有很多麻烦。我不知道你想做什么。但你做得不对。它仍然不匹配strRowHTML=strRowHTML+“”;好的,你能告诉我只匹配str=str+和str+=Its的正则表达式不匹配以下任何代码行strCloseHTML=strCloseHTML+PagingControlHTML;strowhtml=strowhtml+“”@user2998990:您没有提到您也希望匹配HTML代码。编辑问题时,请添加编辑标题。否则,对您以前版本的问题有效的答案可能不适用于添加的部分,人们将投票反对它们,因为它们没有用。对不起。但在这种情况下,字符串可以是任何东西。