鱼C论坛

 找回密码
 立即注册
查看: 3142|回复: 6

分隔符的問題!

[复制链接]
发表于 2013-10-1 02:49:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 kit1858644 于 2013-10-1 02:51 编辑

1. 想問一下"Hello World Sx x"中的分隔符是" "嗎? 以上的字符串是否只有3個分隔符?

2. 在Python 中 r"\b" 是什麼意思?

3. 以下代碼中為什麼只有"x" 被改變? 為什麼"x"後面沒有分隔符也能改變?
  1. import re

  2. p = "Hello World Sx x"

  3. re.sub(r"\bx\b", "PX.", p)
复制代码
問題有點多, 麻煩大家了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-2 12:21:44 | 显示全部楼层
有人解答一下嗎?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-10-3 11:02:33 | 显示全部楼层
你想达到的目的是什么?把Hello World Sx x中的x都替换成PX吗?

那么直接用下面这个就可以了
  1. import re
  2. re.sub(r"x", "PX", "Hello World Sx x")
复制代码
\b是正则表达式规定的一个特殊代码(元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
你的代码只把结尾的x给替换成了PX,'Hello World Sx PX.'

re.sub用于替换字符串中的匹配项。
re.sub的函数原型为:re.sub(pattern, repl, string, count)
其中第二个函数是替换后的字符串
第四个参数指替换个数。默认为0,表示每个匹配项都替换。
re.sub还允许使用函数对匹配项的替换进行复杂的处理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-3 19:28:04 | 显示全部楼层

1, 沒有目的, 只是不明白書上所寫的這個例子, 和\b的意思。

2, 追問: 在我的例子中,
  1. p = "Hello World Sx x"
复制代码
最後的'x'後面明明沒有分隔符, 為什麼改變的會是它?
謝謝解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-10-3 20:55:28 | 显示全部楼层
kit1858644 发表于 2013-10-3 19:28
1, 沒有目的, 只是不明白書上所寫的這個例子, 和\b的意思。

2, 追問: 在我的例子中,最後的'x'後面明明 ...

\b用于匹配单词的开始或结束
用来标识一个单词的开头和结尾的,它只匹配一个位置

你的例子中\bx\b标识的就是最后一个x,所以只会用PX来替换最后一个x

假如你要找的是hello后面不远处跟着一个python,你应该用\bhello\b.*\bpython\b
先是一个单词hello,然后是任意个任意字符(但不能是换行),最后是python这个单词。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-4 03:11:37 | 显示全部楼层
福禄娃娃 发表于 2013-10-3 20:55
\b用于匹配单词的开始或结束
用来标识一个单词的开头和结尾的,它只匹配一个位置

明白了, 謝謝解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-1-22 08:37:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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