regex 查找出现奇数个相同符号的字符串

woobm2wo  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(87)

一个字符串数组,例如:

Lorem Ipsum
"Lorem Ipsum
"Lorem Ipsum"
Lorem Ipsum "Lorem Ipsum
Lorem Ipsum "Lorem Ipsum"
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum"

目标是:查找字符串中有一个奇数号的这个符号-->"(引号)并且不以**"**结尾(使用单个RegEx时)
预期结果:

"Lorem Ipsum
Lorem Ipsum "Lorem Ipsum
"Lorem Ipsum" Lorem Ipsum "Lorem Ipsum

只是想在每个找到的字符串的末尾添加一个引号,但现在我正在努力:c
这是我最好的,但它在多个层面上失败:^(([^"]*\"){2})*[^"]*$

sf6xfgos

sf6xfgos1#

你可以在匹配开始时至少匹配一个双引号,并阻止匹配将\n添加到被求反的字符类的换行符:

^[^"\n]*"(([^\n"]*"){2})*[^\n"]+$

Regex demo
如果字符串应该以非空格字符而不是双引号结束:

^[^"\n]*"(([^\n"]*"){2})*[^\n"]*[^\s"]$

Regex demo

相关问题