【发布时间】:2013-03-11 21:17:34
【问题描述】:
在 RegEx 方面需要帮助。使用 C#。
括号中的单词组(圆形或方框或卷曲)应视为一个单词。括号外的部分应根据空格“ ”进行拆分。
A) 测试用例 –
输入 - Andrew. (The Great Musician) John Smith-Lt.Gen3rd
结果(字符串数组)–
1. 安德鲁。
2. 伟大的音乐家
3. 约翰
4. Smith-Lt.Gen3rd
B) 测试用例——
输入 - Andrew. John
结果(字符串数组)–
1. 安德鲁。
2.约翰
C) 测试用例——
输入 - Andrew {The Great} Pirate
结果(字符串数组)–
1. 安德鲁
2. 伟大的
3.海盗
输入是一个人或任何其他实体的名称。当前系统是用 Access 编写的非常古老的系统。他们通过逐个字符扫描来做到这一点。我正在用 C# 替换它。
我想过分两步来做——首先是基于括号的拆分,然后是单词拆分。
我想把这些案例作为错误的输入丢弃 -
只有开始或结束括号可用
嵌套括号
总的来说,我只想拆分格式正确(如果有开始括号,则必须有结尾)输入。
【问题讨论】:
-
由于括号可以嵌套,正则表达式是错误的工具。你必须编写一个解析器。
-
这并不完全正确。根据输入,如果您知道相同类型的大括号不会被嵌套,那就没问题了。
-
"And {what (about strings} like) this?" -
@JackManey 我敢打赌假设这些不会发生是安全的
-
@JackManey 基于示例输入,并基于我在括号中推断出的语义