哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈。哈哈哈:“哈哈哈哈哈哈哈哈。”哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈。 想用句号进行分割,如何才不匹配引号内的句号?

哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈。哈哈哈:“哈哈哈哈哈哈哈哈。”哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈。 想用句号进行分割,如何才不匹配引号内的句号?
1 billwsy Mar 24, 2019 via iPhone 记得如果是任意多层嵌套的引号的话正则式是做不到的,3 类文法的限制,加条件限制吧? |
2 richard1122 Mar 24, 2019 c# 的正则支持平衡组,看起来应该可以满足需求 |
3 DiamondbacK Mar 25, 2019 $ str='f1。f2。f3:“ f4。f5。” f6。f7。“ f8。f9。”' $ echo $str | sed -r ':a;s/^([^\n]*)(“[^\n]*”)/\1\n\2\n/;t a;' | sed '/^“.*”$/!s/。/\n/' f1 f2 f3: “ f4。f5。” f6 f7 “ f8。f9。” 由于 sed 不支持懒惰匹配,所以第一步是从右边开始分割出引号字符串,并假定引号内没有换行符。 |
4 Alexinder Mar 25, 2019 via Android cfg 或者加个 Stack? |
5 dsg001 OP @DiamondbacK 感谢指点,昨晚折腾了好长时间没搞定 |
6 DiamondbacK Mar 25, 2019 @dsg001 不过这个方法不能解决嵌套引号的情况。 |
7 dsg001 OP @DiamondbacK 暂时还没嵌套的问题,正则这玩意儿总得碰到问题才能长进啊 |