【发布时间】:2018-02-17 11:48:09
【问题描述】:
我有一个正则表达式用逗号分割字符串,忽略单引号或双引号之间的逗号,给出以下 Ruby 代码:
def separate params
params.split(?!\B('|")[^\"']*),(?![^\"']*('|")\B)
end
它确实按预期工作,但具有特殊字符(如 @ 或 # 的字符串除外)
预期行为示例:
https://regex101.com/r/xB7rQ7/156
"\"search\", placeholder: \"Busca rápida: 1.4 8V, Flex, automático...\", id: \"search_terms\" "
意外行为示例:
https://regex101.com/r/xB7rQ7/157
"\"search\", placeholder: \"Busca rápida: 1.4 8V, Flex, automático...\", id: \"#search_terms\" "
请注意,唯一的区别是“search_terms”之前的# 符号,但正则表达式仅在第一种情况下将placeholder 与id 分开。
任何人都可以对我的正则表达式有所了解,以便它在两种情况下都能按预期工作吗?请注意,这是关于其他问题未涵盖的字符串拆分的特定情况。
【问题讨论】:
-
哇,你不会放弃吧?你现在是第 157 版哈哈
-
您能发布示例字符串及其预期输出吗?
-
实际上,检查链接,他们有正在测试的字符串
-
@ErvalhouS 但您有 157 个修订版,您能否给我们一个示例数据集以使用预期输出进行测试?