将JavaScript RegExp转换为使用Grep或Sed [英] Convert Javascript RegExp to work with Grep or Sed

查看:85
本文介绍了将JavaScript RegExp转换为使用Grep或Sed的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <$ 

我需要在服务器上grep一些文件,以便快速入侵并测试JavaScript控制台中的正则表达式以满足我的需求。 c $ c> var regexp = / mssql_query \s * \([\\'] [a-z0-9_\s] *(_ sp | usp _)/ i

//想传递
regexp.test('mssql_query('something_sp')
regexp.test('mssql_query(exec something_sp')
regexp.test(mssql_query('something_else_sp' )
regexp.test('mssql_query(_ usp_sp')
regexp.test('mssql_query(_usp_somethig')
regexp.test(mssql_query('_ usp_something_else)

//想失败
regexp.test('mssql_query(something_s')
regexp.test('mssql_query(exec something_p')
regexp.test('mssql_query (select)

表达式适用于所有我向它投掷的测试用例,但是我似乎无法让表达式与grep一起工作
是否有方法将EMCA表达式转换为ERE或BRE表达式所以我可以使用它与grep或sed?

我已经尝试调整它在grep中工作,但失败惨败。

解决方案

  grepmssql_query *([\\'] [a-z0-9_] * _ sp \ | usp_

应该完成这项工作。它正在寻找:


  1. mssql_query,然后

  2. 0或更多空格(即*),然后是
  3. (然后是或(即([\\ '] ),那么

  4. 0个或多个小写字母,数字,下划线或空格的字符(即 [a-z0 -9_] * ),然后
  5. _sp或usp_(即 _sp \ | usp _


I needed to grep some files on a server so I quickly hacked out and tested a regexp in a javascript console to meet my needs:

var regexp = /mssql_query\s*\([\"\'][a-z0-9_\s]*(_sp|usp_)/i

// want to pass
regexp.test('mssql_query ("something_sp')
regexp.test('mssql_query("exec something_sp')
regexp.test("mssql_query('something_else_sp")
regexp.test('mssql_query("_usp_sp')
regexp.test('mssql_query ("_usp_somethig')
regexp.test("mssql_query('_usp_something_else")

// want to fail
regexp.test('mssql_query ("something_s')
regexp.test('mssql_query("exec something_p')
regexp.test('mssql_query("select')

The expression works perfectly for all the test cases I threw at it, however I can't seem to get the expression to work with grep. Is there a way to convert an EMCA expression to an ERE or BRE expression so I can use it with grep or sed?

I've tried tweaking it to work in grep but have failed miserably.

解决方案

grep "mssql_query *([\"\'][a-z0-9_ ]*_sp\|usp_" 

ought to do the job. It is looking for:

  1. mssql_query, then
  2. 0 or more spaces (that's the " *"), then
  3. (, then " or ' (that's the ([\"\']), then
  4. 0 or more characters that are lowercase letters, numbers, underscores or spaces (that's the [a-z0-9_ ]*), then
  5. _sp or usp_ (that's the _sp\|usp_)

这篇关于将JavaScript RegExp转换为使用Grep或Sed的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆