鱼C论坛

 找回密码
 立即注册
查看: 1846|回复: 5

[已解决]re.sub

[复制链接]
发表于 2023-4-13 19:32:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怎么替换这个:
a123<456>b
到:
a123 456 b
正则:
\w\d+<\d+>
要把里面的两个<>换掉。符合条件的时候
求代码
最佳答案
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。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-13 19:33:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-13 19:36:03 | 显示全部楼层
isdkz 发表于 2023-4-13 19:34
要实现这个替换,您可以使用Python的re模块。具体代码如下:

\w不是第一个吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-13 19:37:59 | 显示全部楼层

\w是符合标识符命名规则的字符,包括数字、字母和下划线
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 19:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表