如何使用正则表达式匹配字符串表达式中以@开头的变量名?
正则提取@前缀变量的解决方案
核心正则
你可以用@([a-zA-Z0-9_]+)完成提取,正则的第一个捕获组会直接返回去掉@符号的变量名,不需要额外做字符串切割。
用法示例
JavaScript
const expression = '@day1 - @day2 > 3' const reg = /@([a-zA-Z0-9_]+)/g const result = [] let matched while((matched = reg.exec(expression)) !== null) { result.push(matched[1]) } // 最终result输出为 ['day1', 'day2']
Python
import re expression = '@day1 - @day2 > 3' reg = r'@([a-zA-Z0-9_]+)' result = re.findall(reg, expression) # 最终result输出为 ['day1', 'day2']
适配修改说明
如果你的变量名规则允许除了字母、数字、下划线之外的字符,直接修改正则中[a-zA-Z0-9_]部分的匹配规则即可,比如允许短横线的话改为[a-zA-Z0-9_-]。
该正则支持提取表达式内所有@开头的变量,不限于示例中的day1、day2两个变量。
内容的提问来源于stack exchange,提问作者Bes Ley
相关产品推荐
相关产品推荐

