我正在尝试匹配字符串,这些字符串要么看起来像这样:
7;7;52*8
8;8;62*5
9;9;55*1
11;7;52*49
12;8;62*64
14;9;54*62或者像这样:
7;7;52
8;8;62
9;9;55
11;7;52
12;8;62
14;9;54我使用以下代码。
QRegularExpression re("(^\\d+;\\d+;\\d\\d$)|(^\\d+;\\d+;\\d\\d\\*\\d+$)");
QRegularExpressionMatch match;匹配第一部分是有效的,但第二个似乎打破了星号部分。
下面的代码用于notepad++中的regex搜索
(^\d+;\d+;\d\d$)|(^\d+;\d+;\d\d\*\d+$)有什么特别的方法来逃避星号字符吗?
发布于 2017-01-31 14:49:00
似乎您需要使regex匹配行的开始和结束。修复正则表达式的最简单方法是在模式开始时添加(?m)内联修饰符。
请注意,您的模式包含冗余部分,您可以对单个分支使用regex:
"(?m)^\\d+;\\d+;\\d\\d(?:\\*\\d+)?$"详细信息
(?m)^ -行的开始\\d+;\\d+; - 1+数字和; (2次)\\d\\d -两位数(?:\\*\\d+)? - *和1+数字的可选序列$ -线的末端。https://stackoverflow.com/questions/41960083
复制相似问题