字符串 "M0.89"的 C++ 正则表达式

标签 c++ regex

尝试在 C++ 正则表达式中表示以下内容:M0.89 或 m1.78 或 M0.9

"M|m([0-9].[0-9]+)"

正则表达式检查程序表明它不起作用。我做错了什么?

谢谢!

最佳答案

问题在于您使用交替运算符的方式。在左侧(第一个备选方案),它只是希望从字面上匹配字母“M”。在右侧(第二个备选方案),它正在寻找“m”后跟一个数字字符 → 任何单个字符,然后是另一个数字字符。

任何简单的方法都是在这里使用字符类:

"[mM][0-9]\\.[0-9]+"

注意:要匹配文字 .,您需要在其前面加上双反斜杠。

关于字符串 "M0.89"的 C++ 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30553043/

相关文章:

c++ - 更自然的 boost::bind 替代方案?

C++ 多态性错误 : no matching function for call to

regex - 在Go中优化正则表达式的内存消耗

正则表达式贪婪问题

javascript - CodeMirror 正则表达式与典型 Javascript 正则表达式解析器的行为不匹配

java - 除非它在带引号的字符串中,否则如何匹配评论?

c++ - 为什么这个imapclient g++编译会出错

c++ - 在数组搜索中返回迭代器索引

c++ - vim 使用户定义类型的颜色与 C++ 中的基本类型相同

php - 正则表达式从字符串 PHP 中删除年份