我有以下格式一些文本输入:复杂的正则表达式的正则表达式
[PARENT] - [选项] - [选项]
例如
- BIKE -XT-MM-LX-100-BB
- TRICYCLE -MM-XP
- MOTORBIKE -X100V (-X100V是不是一个不错的选择)
我使用正则表达式分离选项从父。 由于某些例外情况,将选项分开并不像您看到的那么容易。 除了以X开头并且长于两位数的任何东西,例如#3(其中-X100V不是选项)之外,任何后面跟短划线的选项都应该是一个选项。 后来我与表达等,这些去分开大块:
// Only separates 2 digit options, but we have more digit options:
(\A[^-]+)(-\w\w\b)+
// 2 digits and more option which -X100V fits into also. but not an option:
(\A[^-]+)(-\w{2,}\b)+
// which separates any 2 digit and longer followed by dash as an option
// unless it is started with X (which rules out my 2 digit -XX options by mistake):
(\A[^-]+)(-[^\BX]\w{1,}\b)+
现在我只需要一个步骤,以增加一条规则,只有消除了开始与-X的情况,但都超过两位数,那么我可以再次包含像-XT这样的示例。
我很想听听这些建议。
@Ic。真的很感谢你的回答。我其实也是这样做的。然而,正则表达式是一种强大的工具,可以将相同的结果写入一段非常短且相当可读的代码行,我主要想学习如何完成这种类型的转换。 – Mehrad