歌者文明清理员 发表于 2023-4-13 19:32:46

re.sub

怎么替换这个:
a123<456>b
到:
a123 456 b
正则:
\w\d+<\d+>
要把里面的两个<>换掉。符合条件的时候
求代码

sfqxx 发表于 2023-4-13 19:33:25

isdkz 发表于 2023-4-13 19:34:09

要实现这个替换,您可以使用Python的re模块。具体代码如下:

import re

input_str = "a123<456>b"
pattern = r'(\w\d+)<(\d+)>'
replacement = r'\1 \2 '

result = re.sub(pattern, replacement, input_str)
print(result)


在这段代码中,我们使用了正则表达式(\w\d+)<(\d+)>来匹配文本。我们用括号()捕获了要保留的部分,然后在替换字符串r'\1 \2 '中引用这些捕获的分组。

\1表示第一个捕获的分组,\2表示第二个捕获的分组。通过这种方式,我们实现了将a123<456>b替换为a123 456 b。

歌者文明清理员 发表于 2023-4-13 19:36:03

isdkz 发表于 2023-4-13 19:34
要实现这个替换,您可以使用Python的re模块。具体代码如下:




\w不是第一个吗

sfqxx 发表于 2023-4-13 19:37:02

您好,以下是Python中re模块的代码实现:

```python
import re

string = "a123<456>b"
pattern = r"\w\d+<\d+>"
replace_str = re.sub(pattern, lambda x: x.group().replace("<", " ").replace(">", " "), string)
print(replace_str)# a123 456 b
```

解释如下:

1. 导入re模块。
2. 定义待处理的字符串string和匹配模式pattern。

isdkz 发表于 2023-4-13 19:37:59

歌者文明清理员 发表于 2023-4-13 19:36
\w不是第一个吗

\w是符合标识符命名规则的字符,包括数字、字母和下划线
页: [1]
查看完整版本: re.sub