登录
首页 >  Golang >  Go问答

查找格式错误的带引号的字符串的正则表达式

来源:stackoverflow

时间:2024-03-11 09:18:24 289浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《查找格式错误的带引号的字符串的正则表达式》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我正在尝试为具有起始引号但没有结束引号的子字符串构建正则表达式。下面是一个示例字符串

"the fish was 2 long. i said: give me that fish!.
the fish was 2" long. i said: give me that fish!.
"the fish was 2 long. i said: give me that fish!."
the fish "was 2 long". i said: "give me that fish!.

因此表达式的有效输出为

String 1 - The fish was 2 long. I said: Give me that fish!
String 2 -  long. I said: Give me that fish!.
String 3 - No output
String 4 - Give me that fish!.

关于如何构建正则表达式的任何想法。


解决方案


所有事情都可以用正则表达式完成..将需要更多时间来完善解决方案。但是使用一些字符串函数会让你变得更容易。

希望这有帮助!!

package main

import (
"fmt"
"regexp"
"strings"
)

func main() {
str := `
    "The fish was 2 long. I said: Give me that fish!.
The fish was 2" long. I said: Give me that fish!.
"The fish was 2 long. I said: Give me that fish!."
""sdfsdf
`
splitStr := strings.Split(str, "\n")
re := regexp.MustCompile(`"{1}[A-Za-z0-9 .:!]+"{0}[A-Za-z0-9 .:!]+$`)
for _,v := range splitStr {
    if len(strings.Trim(v, " ")) >= 0{
    // some extra check
    if strings.Count(v, "\"") % 2 == 1 {
        fmt.Println( re.FindString(v))
    }

    } 
}

}

此处提供代码示例:https://play.golang.org/p/LYte6FRocv3

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《查找格式错误的带引号的字符串的正则表达式》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>