NE{$neID}CRD{$slotNumber}TP{$xxx} 写一个工具类 当检测到$符号 括号里面就传入对应参数名的变量
时间: 2023-11-01 21:09:16 浏览: 140
可以使用正则表达式来匹配NE{$neID}CRD{$slotNumber}TP{$xxx}这样的字符串,并提取出对应的参数名和参数值。以下是一个示例的工具类实现:
```python
import re
class ParamsExtractor:
@staticmethod
def extract_params(text):
"""
从文本中提取参数
:param text: 包含参数的文本
:return: 字典,包含提取出的参数名和参数值
"""
params = {}
pattern = r'\$([a-zA-Z_][a-zA-Z0-9_]*)\{([^\}]+)\}'
matches = re.findall(pattern, text)
for match in matches:
param_name = match[0]
param_value = match[1]
params[param_name] = param_value
return params
```
使用示例:
```python
text = 'NE{$neID}CRD{$slotNumber}TP{$xxx}'
params = ParamsExtractor.extract_params(text)
print(params) # {'neID': '', 'slotNumber': '', 'xxx': ''}
```
这里的正则表达式`r'\$([a-zA-Z_][a-zA-Z0-9_]*)\{([^\}]+)\}'`可以解读如下:
- `\$\(`:匹配$符号和左括号
- `([a-zA-Z_][a-zA-Z0-9_]*)`:匹配参数名,由字母、数字和下划线组成,不能以数字开头
- `\{([^\}]+)\}`:匹配参数值,由一对花括号包含,括号内的任意字符都作为参数值,直到遇到右括号为止
通过以上正则表达式的匹配,就可以从文本中提取出所有的参数名和参数值。
阅读全文