为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式匹配函数名称和参数

使用正则表达式匹配函数名称和参数

收到一只叮咚 2023-05-11 14:00:41
我有以下模式中的一些字符串'walkPath(left, down, left)'为了单独提取函数名称和另一个数组中的参数,我使用了这些正则表达式:const str = 'walkPath(left, down, left)'const functionNameRegex = /[a-zA-Z]*(?=\()/console.log(str.match(functionNameRegex)) //outputs ['walkPath'] ✅✅const argsRegex = /(?![a-zA-Z])([^,)]+)/gconsole.log(str.match(argsRegex)) //outputs [ '(left', ' down', ' left' ] 第一个工作正常。在第二个正则表达式中,'(' 来自 '(left' 应该被排除,所以它应该是 'left'
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

试试这个:


/(?<=\((?:\s*\w+\s*,)*\s*)\w+/g

const str = 'walkPath(left, down, left)'


const functionNameRegex = /[a-zA-Z]*(?=\()/

console.log(str.match(functionNameRegex))


const argsRegex = /(?<=\((?:\s*\w+\s*,)*\s*)\w+/g

console.log(str.match(argsRegex))


不是很受限制,如果你真的想要安全,你可以试试:

/(?<=\w+\s*\((?:\s*\w+\s*,\s*)*\s*)\w+(?=\s*(?:\s*,\s*\w+\s*)*\))/g


查看完整回答
反对 回复 2023-05-11
?
ITMISS

TA贡献1871条经验 获得超8个赞

使用此正则表达式获取参数:


const argsRegex = /\(\s*([^)]+?)\s*\)/

获取数组中的参数:


const str = 'walkPath(left, down, left)'

const argsRegex = /\(\s*([^)]+?)\s*\)/

let res = str.match(argsRegex)

let args = res[1].split(", ")


查看完整回答
反对 回复 2023-05-11
  • 2 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信