我试图匹配看起来像这样的字符串:
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;
我使用以下代码。
(^\d+;\d+;\d\d$)|(^\d+;\d+;\d\d\*\d+$)
匹配第一部分是有效的,但第二部分似乎在星号部分打破。
以下代码适用于notepad ++
中的正则表达式搜索 filepathlist[*size] = d_path;
是否有一些特殊的方法来逃避星号字符?
答案 0 :(得分:1)
您似乎需要使正则表达式匹配行的开头和结尾。修复正则表达式的最简单方法是在模式的开头添加(?m)
内联修饰符。
请注意,您的模式包含冗余部分,您可以使用带有单个分支的正则表达式:
"(?m)^\\d+;\\d+;\\d\\d(?:\\*\\d+)?$"
<强>详情:
(?m)^
- 开始行\\d+;\\d+;
- 1位数和;
(2次)\\d\\d
- 两位数(?:\\*\\d+)?
- *
和1+位数的可选序列$
- 行尾。