"aa*<img>*2121*<img>*11" 字符串如何用正则 切成 aa, 2121,11
时间: 2023-07-23 14:04:17 浏览: 44
可以使用正则表达式 `\w+` 来匹配字符串中的数字和字母,并使用 `re.findall()` 函数来获取所有匹配结果。具体实现如下:
```python
import re
s = "aa*<img>*2121*<img>*11"
result = re.findall(r'\w+', s)
print(result)
```
输出结果为:
```
['aa', 'img', '2121', 'img', '11']
```
可以看到,虽然正则表达式匹配到了 "img" 字符串,但它也符合 "\w+" 的规则,因此也被匹配了出来。如果需要排除 "img" 这样的字符串,可以使用负向预测断言 `(?<!img)\w+`,它表示匹配不在 "img" 前面的所有数字和字母。具体实现如下:
```python
import re
s = "aa*<img>*2121*<img>*11"
result = re.findall(r'(?<!img)\w+', s)
print(result)
```
输出结果为:
```
['aa', '2121', '11']
```
可以看到,输出结果已经排除了 "img" 字符串。
相关问题
js "aa*<img>2121<img>*11" 字符串如何用正则 切成 aa, 2121,11
你可以使用正则表达式中的 `split` 方法来实现这个功能。具体来说,你可以使用如下的代码:
```javascript
const str = 'aa*<img>2121<img>*11';
const regex = /[*<img>]+/;
const result = str.split(regex).filter(Boolean);
console.log(result); // ["aa", "2121", "11"]
```
解释一下这段代码:
- 首先,我们定义了一个字符串 `str`,其中包含了需要切割的文本。
- 然后,我们定义了一个正则表达式 `regex`,它匹配了 `*`、`<`、`img` 和 `>` 这四个字符中的任意一个。这个正则表达式使用了字符组(`[...]`)和量词符(`+`)。
- 接着,我们使用 `split` 方法将 `str` 字符串按照正则表达式 `regex` 进行切割。这会生成一个数组,数组中的元素就是切割后的字符串。
- 最后,我们使用 `filter` 方法过滤掉数组中的空字符串,得到最终的结果。
希望这个解答能够帮助到你!
QVector<int> * aa = new QVector<int>[4];
这行代码创建了一个指向 QVector<int> 类型数组的指针,数组的大小为 4。也就是说,它创建了一个包含 4 个 QVector<int> 对象的动态数组,并将指针 aa 指向这个数组的开头。可以通过 aa[0]、aa[1]、aa[2]、aa[3] 等方式访问数组中的不同元素,每个元素都是一个 QVector<int> 对象。注意,这种方式创建的动态数组需要手动释放内存,否则会导致内存泄漏。