【发布时间】:2019-09-03 21:55:17
【问题描述】:
假设我有以下测试数据
Home$Fruits
Home$Fruits$Apple
Home$Fruits$Apple$Red-Apple
Home$Fruits$Apple$Green-Apple
Home$Fruits$Banana$Yellow-Banana
Home$Fruits$Banana$Green-Banana
Home$Fruits$Orange
我想匹配那些有 $ 符号的行正好 2 次(或正好 'n' 次)。可能的正则表达式是什么?
非常感谢任何帮助。
【问题讨论】:
-
金额是否需要完全等于 'n',或者至少有那么多 '$'?
-
使用正则表达式,您将很难避免对具有超过指定数量要匹配的符号的行进行错误匹配。使用其他字符串处理技术应该会容易得多。例如,在 javascript 中,此函数将根据文本和美元符号的数量返回匹配行的列表:
(text, dollars)=> text.split('\n').filter(line => [...line].filter(character => character === "$").length === dollars)。 -
正好两个或两个或更多,区别仅在于限制量词,方法是the same。
-
@Aswath 您似乎不确定您的要求,因为您不断更改它。
标签: regex