gpt4 book ai didi

regex - 如何使用正则表达式替换确切的字符串?在 DrRacket

转载 作者:行者123 更新时间:2023-12-04 04:37:35 24 4
gpt4 key购买 nike

我最近一直在使用一些函数,我有一个适用于某些情况的函数,我需要一个通用函数。
我需要一个正则表达式,以便它准确地找到我正在寻找的东西,而不仅仅是它的痕迹。
我有这个,例如

>(regexp-replace* #rx"^123456$" "123456 FUBAR" "MATCH!")
"123456 FUBAR"

如您所见,它并没有用“MATCH!”替换“123456”!

我尝试使用这个:
> (regexp-replace* #rx"(?:^| )123456(?:$| )" "123456XXXXX FUBAR" "MATCH!")
"123456XXXXX FUBAR"

这正是我不需要的。

我潜伏在其他一些帖子中,但我认为 jScript 和 php 中的正则表达式的工作方式略有不同,因为它们使用“/”。

谢谢指教!

编辑:
好。例如,使用以下 #rx: ^a 不能很好地处理像 (a 0 (a b)) 这样的字符串。
> (regexp-replace* "^(a)" "(a 0 (a b)) FUBAR" "MATCH!")
"(a 0 (a b)) FUBAR"

我主要需要它以这种方式工作。 :P

最佳答案

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

> (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 Syntax

关于regex - 如何使用正则表达式替换确切的字符串?在 DrRacket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com