首页 > 解决方案 > 正则表达式按句点拆分,除非在括号之间或在大括号之间或在双引号之间

问题描述

我正在尝试编写一个正则表达式模式并使用 split 函数在所有期间拆分,除非这些期间在打开和关闭括号或花括号之间。我认为我做对了,因为在在线正则表达式测试器中,当我运行拆分时它正确地突出显示了我想要拆分的期间,它不仅拆分了句点并创建了一个长列表。我想我显然在做某事,但似乎无法弄清楚。到目前为止,请参阅下面的内容。谢谢!

到目前为止我所拥有的:

到目前为止的正则表达式: .(?=([^]] ([)[^[] (])) [^]] $)(?=([^}] ({)[^[{] (})) [^}] $)(?=([^"] (")[^"] (")) [^"] $)

EX 字符串(应仅在第一次出现句点时拆分):PARENTCOLENUM.[{COLID.NAME_COLUMN_OID}] {.} [.] "."

测试站点链接(在您单击拆分列表选项卡之前一直向右看,然后它显示将其拆分超过该期间。

http://regexstorm.net/tester?p=%5c.%28%3f%3d%28%5b%5e%5c%5d%5d*%28%5c%5b%29%5b%5e%5c%5b %5d*%28%5c%5d%29%29*%5b%5e%5c%5d%5d*%24%29%28%3f%3d%28%5b%5e%5c%7d%5d*%28 %5c%7b%29%5b%5e%5c%5b%5c%7b%5d*%28%5c%7d%29%29*%5b%5e%5c%7d%5d*%24%29%28% 3f%3d%28%5b%5e%5c%22%5d*%28%5c%22%29%5b%5e%5c%22%5d*%28%5c%22%29%29*%5b%5e %5c%22%5d*%24%29&i=PARENTCOLENUM.%5b%7bCOLID.NAME_COLUMN_OID%7d%5d+%7b.%7d+%5b.%5d+%22.%22

标签: regex

解决方案


好的,我只是通过测试一些正则表达式选项才知道的。使用正则表达式选项:RegexOptions.ExplicitCapture

对于将来可能想要参考的任何人,我的最终正则表达式模式是: .(?=([^(]|}|"")] ([|{|"")[^([|{|"") ] (]|}|"")) [^(]|}|"")] $)


推荐阅读