正则表达式匹配字符串中的括号“(”
regexp matching bracket "(" in string
我在 Racket/Scheme 中使用正则表达式匹配字符串中的括号时遇到困难。我认为你必须转义括号,因为它用于正则表达式中的其他内容,我已经尝试过:
(regexp-match #rx"(" "(")
(regexp-match #rx"\(" "(")
(regexp-match #rx"[\(]" "(")
None 这些似乎有效。
是的,您确实需要转义括号,但 Racket 中的正则表达式文字仅使用普通字符串解析,因此您还 必须转义反斜杠。
(regexp-match #rx"\(" "(") ; => '("(")
这里需要使用double escapes。
(regexp-match #rx"\(" "(")
在 Scheme 中没有 regexp-match
(仅在 #!racket
中有效)。但是,您有 SRFI-115 为标准 Scheme 报告实施正则表达式。使用此 RE 实现,答案是:
(regexp-matches? "(" "(") ; ==> #t
之所以不需要引用是因为Scheme正则表达式使用列表结构来表达复杂的匹配。例如:
(regexp-search '(w/nocase (~ ("Aab"))) "b") => #<regexp-match>
我在 Racket/Scheme 中使用正则表达式匹配字符串中的括号时遇到困难。我认为你必须转义括号,因为它用于正则表达式中的其他内容,我已经尝试过:
(regexp-match #rx"(" "(")
(regexp-match #rx"\(" "(")
(regexp-match #rx"[\(]" "(")
None 这些似乎有效。
是的,您确实需要转义括号,但 Racket 中的正则表达式文字仅使用普通字符串解析,因此您还 必须转义反斜杠。
(regexp-match #rx"\(" "(") ; => '("(")
这里需要使用double escapes。
(regexp-match #rx"\(" "(")
在 Scheme 中没有 regexp-match
(仅在 #!racket
中有效)。但是,您有 SRFI-115 为标准 Scheme 报告实施正则表达式。使用此 RE 实现,答案是:
(regexp-matches? "(" "(") ; ==> #t
之所以不需要引用是因为Scheme正则表达式使用列表结构来表达复杂的匹配。例如:
(regexp-search '(w/nocase (~ ("Aab"))) "b") => #<regexp-match>