use*_*359 1 lisp regex arrays string racket
我有一个像这样定义的列表:
(define testlist '((Dog <=> Cat)
(Anne <=> Dodd))
Run Code Online (Sandbox Code Playgroud)
有没有办法转:(car testlist)进入一个字符串所以我可以使用regexp来搜索"<=>"?
让我从这个极为相关的 Jamie Zawinski报价开始:
有些人在遇到问题时会想:"我知道,我会使用正则表达式."现在他们有两个问题.
你真的不想在这里使用正则表达式.首先,当您<=>在其中间有标识符时,基于正则表达式的解决方案将会中断.
另一方面,在不使用正则表达式的情况下解决此问题非常容易.
这里有一大堆"正确的答案",具体取决于你究竟要做什么,但让我首先指出你可以使用"成员"函数来查看列表是否包含符号'<=>:
#lang racket
(define testlist '((Dog <=> Cat)
(Anne <=> Dodd)))
(cond [(member '<=> (car testlist)) "yep"]
[else "nope"])
Run Code Online (Sandbox Code Playgroud)
我怀疑你是在尝试将这些解析为逻辑等价,在这种情况下你需要定义语句的可能结构,然后从那里开始,但是让我们从不使用常规表达式开始:).