)]/.match("\"The Boss\" ") 得到如下结果: name = The Boss" email = da-6ren">
gpt4 book ai didi

ruby - 如何从以下 ruby​​ 正则表达式中删除引号?

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:16 25 4
gpt4 key购买 nike

我有以下正则表达式:

/["]*(?<name>.*)[\"]*?\s*[<(](?<email>\w.*)[>)]/.match("\"The Boss\" <daboss@aol.com>")

得到如下结果:

name = The Boss"
email = daboss@aol.com

我如何摆脱 The Boss 的最后引述???

请随时重构我的正则表达式,使其更合理...

最佳答案

问题是 (?<name>).* , 它会吃掉任何东西,包括双引号。一个简单的解决方法是将其更改为 .*? . (这是一个不情愿的匹配器;它匹配尽可能少的字符,而不是尽可能多的字符。)

另一种方法是使用 [^"]*而不是 .* .

这里有一个关于正则表达式的重要教训:无论何时编写正则表达式,不要只考虑要匹配的内容;考虑一下您不想匹配的内容。正则表达式的一个非常常见的错误来源是匹配太多

关于ruby - 如何从以下 ruby​​ 正则表达式中删除引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com