regex - 列表到 Racket 中的字符串

标签 regex arrays string lisp racket

我有一个这样定义的列表:

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

相关文章:

sql - 用于提取 SQL where 子句的正则表达式

arrays - Haskell 中的数组

javascript - 为什么我的简单 for 循环不能按我想要的方式工作?

javascript - 获取数组的每四分之一并检查

java - 如何在没有局部变量的情况下一次一个字符地反向打印字符串

c - 将字符串数组作为字符指针传递

php - 如何在 PHP 中替换字符串中的非 ASCII 字符?

c++ - boost 正则表达式错误

javascript - 电话号码的正则表达式

c - C : operands of unequal types, char[255] 和 char* 中的字符串问题