我正在尝试为具有起始引号但没有结束引号的子字符串构建正则表达式。以下是示例字符串
"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!.
任何想法如何建立正则表达式。
使用regex可以完成所有操作..将花费更多时间来完善解决方案。但是,使用一些字符串函数将使您轻松一点。
希望这可以帮助!!
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句