我有一个这样定义的列表:
(define testlist '((Dog <=> Cat)
(Anne <=> Dodd))
有什么方法可以将:(car teSTList)
转换为字符串,以便我可以在其上使用正则表达式来搜索“<=>”?
最佳答案
让我从 Jamie Zawinski 的这句非常相关开始:
Some people, when confronted with a problem, think, “I know, I'll use regular expressions.” Now they have two problems.
你真的不想在这里使用正则表达式。一方面,当您拥有带 <=>
的标识符时,基于正则表达式的解决方案将会中断。在他们中间。
另一方面,不使用正则表达式解决这个问题真的很容易。
这里有一大堆“正确答案”,这取决于你到底想做什么,但让我首先指出你可以使用“成员”函数来查看列表是否包含符号'<=>
:
#lang racket
(define testlist '((Dog <=> Cat)
(Anne <=> Dodd)))
(cond [(member '<=> (car testlist)) "yep"]
[else "nope"])
我怀疑您正在尝试将它们解析为逻辑等价,在这种情况下,您需要定义语句的可能结构,然后从那里开始,但让我们从不使用正则表达式开始:)。
关于regex - 列表到 Racket 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291904/