首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用regex替换确切的字符串?在DrRacket中

如何使用regex替换确切的字符串?在DrRacket中
EN

Stack Overflow用户
提问于 2013-10-20 03:04:16
回答 1查看 387关注 0票数 2

我最近一直在处理一些功能,我有这样一个功能,它适用于某些情况,我需要一个通用的功能。我需要一个正则表达式,这样它就能准确地找到我正在寻找的东西,而不仅仅是它的踪迹。例如,我有这个

代码语言:javascript
复制
>(regexp-replace* #rx"^123456$" "123456 FUBAR" "MATCH!")
"123456 FUBAR"

正如你所看到的,它不是用“匹配”代替“123456”!

我试过用这个:

代码语言:javascript
复制
> (regexp-replace* #rx"(?:^| )123456(?:$| )" "123456XXXXX FUBAR" "MATCH!")
"123456XXXXX FUBAR"

这正是我不需要的。

我已经浏览过其他一些帖子,但是我认为jScript和php中的regexp的工作方式有点不同,因为它们使用了"/“。

谢谢你的建议!

编辑:嗯。例如,使用以下#rx:^a并不能很好地处理像(a 0 (a b))这样的字符串。

代码语言:javascript
复制
> (regexp-replace* "^(a)" "(a 0 (a b)) FUBAR" "MATCH!")
"(a 0 (a b)) FUBAR"

我很需要它才能做到这一点。:P

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 03:19:45

使用word边界(\b,应该使用pregexp语法):

代码语言:javascript
复制
> (regexp-replace* #px"\\b123456\\b" "123456 FUBAR" "MATCH!")
"MATCH! FUBAR"
> (regexp-replace* #px"\\b123456\\b" "123456XXXXX FUBAR" "MATCH!")
"123456XXXXX FUBAR"
> (regexp-replace* #px"\\ba\\b" "(a 0 b) FUBAR" "MATCH!")
"(MATCH! 0 b) FUBAR"
> (regexp-replace* #px"a" "(a 0 (a b)) FUBAR" "MATCH!")
"(MATCH! 0 (MATCH! b)) FUBAR"

请参阅Regexp语法

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19473483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档