正则表达式模式匹配我的代码中断的位置

时间:2010-02-21 18:36:36

标签: regex

我想将以下值放入mysql db

模式应该如下所示,我需要一个正则表达式来确保模式始终如下:

('', '', '', '', '')

在我的代码的一些罕见的执行中,我得到以下输出,其中一个撇号消失。它不时在第4条记录中消失。比如下面的代码,我放置*

('1', '2576', '1', '*, 'y')

任何解决这个问题都会受到欢迎!

这应该能够匹配代码中断的一次

string.replace(/, \',/ig, ', \'\',');

如果是这样的话我该怎么做

('1', '2576', '1', 'where I have text here and it breaks at the end*, 'y')

我正在使用javascript和asp

我认为解决方案就是这样的

string.replace(/, \'[a-zA-Z0-9],/ig, ', \'\',');但不确定如何写它

这几乎是我正在寻找的解决方案......

string.replace(/[a-zA-Z0-9], \'/ig, '\', \'');

然而,此代码将', '替换为文本的最后一个字母,因此如果字符串中的文字为'approved, ',则会替换'approve', '并切断字母{{1} }}

我知道有一种方法可以引用它而不是删除最后一个字母,但不知道该怎么做

2 个答案:

答案 0 :(得分:1)

这是你要找的吗?当除了最后一个字段之外的所有字段都缺少'

时,它匹配
\('.*?'\)

答案 1 :(得分:0)

你的正则表达式将是这样的:

^\('.*?',\ '.*?',\ '.*?',\ '.*?',\ '.*?'\)$

您可以检查您的字符串是否在ASP.net中与某些类似的代码匹配:

   Match m = Regex.Match(inputString, @"^\('.*?',\ '.*?',\ '.*?',\ '.*?',\ '.*?'\)$");
   if (!m.Success)
   {
         //some fix logic here
   }