得到一个类似的字符串,其余的放电

时间:2009-02-16 11:15:04

标签: javascript regex

想知道你是否可以帮我解决一些Javascript问题。我有一个字符串是日志消息,我想要从这个日志中抓取一个部分并在它上面显示它

例如。(请记住,日志部分不是大小写的,任何字母都可以是任何情况,也可以放在带字符串的任何地方)

$ LOG:08880xbpnd $ fhdsafidsfsd DF SD FSD F SD FSD

那是原始的日志,我想抓住08880xbpnd并摆脱其余的?怎么能在javascript中完成?

编辑

如果这是任何帮助我在perl中使用这个正则表达式来抓取其他地方的日志

/ \ $ LOG(Ⅰ'):\ S *(无|(温度(GD | MD)(\ d {1,2}){4}))\ S * \ $ /

基本上介于$ LOg之间:和$我想抓住并排除任何空格,其间的价值可能是任何或上面的

4 个答案:

答案 0 :(得分:3)

我会使用这个正则表达式:

/\$LOG:([^$]+)\$/i

所以:

"$LOG: 08880xbpnd $ fhdsafidsfsd df sd fsd f sd fsd".match(/\$LOG:([^$]+)\$/i)

答案 1 :(得分:2)

这对我有用:

<script type="text/javascript">
  // Call the function with a sample input string.
  GetMyLog("$LOG: 08880xbpnd $ fhdsafidsfsd df sd fsd f sd fsd");

  function GetMyLog(fullString)
  {
    // Create a Regex object. We want to capture all word-like characters within the $LOG and ending $
    // This assumes that there will not be any more "$" characters in the trailing string.
    var reg = /\$LOG:\s*([\w]+)\s*\$/;

    // If the match attempt was successful, we need to get the second value in the array returned by the match.
    if (fullString.match(reg))
    {
      alert(reg.exec(fullString)[1]);
    }
  }
</script>

答案 2 :(得分:0)

马修,

以下正则表达式应该在反向引用中 $ LOG: $ 之间提供任何内容 \ 1

\$LOG:(.*?)\$

答案 3 :(得分:0)

我不会使用正则表达式,你的情况很简单,也许,使用子字符串你可以获得速度的提升。

尝试使用以下内容:

function getToken(logline, startTag, endTag) {
  return logline.substring(startTag.length,logline.indexOf(endTag,1));
}

回复评论的新版本:

function getToken(logline, startTag, endTag) {
  result =""; 
  if ( logline.indexOf(startTag)>=0) 
    result= logline.substring(startTag.length,logline.indexOf(endTag,1));
  return result;  
}