我希望评估类似于以下的结构:
房子是绿色的,但我最喜欢的颜色是蓝红和黄
我用这样的正则表达式确定房子的颜色:
房子\s+(\w\s*)+(?=(青色|绿色|红色|蓝色))
它有什么作用?此表达式返回下一个匹配项:
房子是绿色的,但我最喜欢的颜色是蓝色
也就是说,返回字符类颜色列表中字符串中的最后一个匹配项,即直到出现红色,但您看到的第一个颜色是绿色。
我应该怎么办?我正在寻找的是只取列表中提到的第一种颜色并停止查找,即告诉我房子颜色是绿色的,没有别的。
Q1:如何循环遍历字符串,直到只出现一个且只有一个您指示的表达式,即如何将表达式(青色或绿色或蓝色或红色)转换为行为类似于 XOR 的列表。重要:只使用正则表达式,即没有任何como.NET背景语言、Java、PERL等...
Q2:有没有我错过的使用正则表达式的替代方法。也就是说,我走的路是对的吗?
先谢谢大家了