正则表达式 - 替换行尾,而不是字符串?

时间:2015-07-22 12:45:18

标签: javascript jquery regex replace foxpro

我正在慢慢构建一个FoxPro到C#的转换,并将常见的FoxPro语法替换为现在在C#中工作。

'If' becomes 'if (' 

'Else' becomes '} else {'

'Endif' becomes '}'

现在我需要能够在If语句中识别行尾,以便我可以使用) {将其关闭。我怎样才能通过regex / jquery来实现这个目标?

JsFiddle

3 个答案:

答案 0 :(得分:2)

这里你是一个正常的表达式

/^If([^$\n\r]+)(?:$|\r\n)/gim

选中此fiddle

答案 1 :(得分:0)

检测以“if”开头的行很简单:/ ^ if /

现在你需要一个函数来替换那些自己的行+'){'。

答案 2 :(得分:0)

这可能比上面的答案更麻烦,但这是我修复它的方式。 http://jsfiddle.net/9m3fj443/10/

// close statements now that vocab is switched
                var lines = output.split('\n');
                var newoutput = '';
                $.each(lines, function(ind, val){

                    if(val.indexOf('if (') > -1)
                        val += '<span class="syntax">) {</span>';

                    // add back line break to keep tidy
                    newoutput += val + '\n'
                });