我正在尝试创建一个表达式,以收集除数字和字符*
之外的任何东西。我尝试使用表达式\D[^*]
,但不知何故,它检索的是空格后的第一个数字。我使用字符串1234 1234 1234 ****
尝试了此表达式,匹配项为:“ 1”,“ 1”。谁能告诉我为什么表达式会收集带有空格的数字?
谢谢。
答案 0 :(得分:2)
您的正则表达式('\D[^*]'
)将匹配一个空格(不是数字),然后是一个数字(不是星号'*')。
您可以做几件事,最简单的方法是在字符组中包含'\ d',这样就可以了,因为'\d'
和'*'
都被排除了:
/[^\d*]/g
现在,在您的示例中,它将仅与Spaces
匹配。
答案 1 :(得分:1)
正则表达式中的方括号是一个集合,而带有^的方括号表示不在集合中。 \ d也应放在方括号内:
char x;
cin >> x;
while(cin.peek() != '\n')
cin.ignore();