首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QRegularExpression转义星号作为字符

QRegularExpression转义星号作为字符
EN

Stack Overflow用户
提问于 2017-01-31 14:29:51
回答 1查看 827关注 0票数 1

我正在尝试匹配字符串,这些字符串要么看起来像这样:

代码语言:javascript
复制
7;7;52*8    
8;8;62*5    
9;9;55*1    
11;7;52*49    
12;8;62*64    
14;9;54*62

或者像这样:

代码语言:javascript
复制
7;7;52    
8;8;62    
9;9;55    
11;7;52    
12;8;62    
14;9;54

我使用以下代码。

代码语言:javascript
复制
QRegularExpression re("(^\\d+;\\d+;\\d\\d$)|(^\\d+;\\d+;\\d\\d\\*\\d+$)");
QRegularExpressionMatch match;

匹配第一部分是有效的,但第二个似乎打破了星号部分。

下面的代码用于notepad++中的regex搜索

代码语言:javascript
复制
(^\d+;\d+;\d\d$)|(^\d+;\d+;\d\d\*\d+$)

有什么特别的方法来逃避星号字符吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 14:49:00

似乎您需要使regex匹配行的开始和结束。修复正则表达式的最简单方法是在模式开始时添加(?m)内联修饰符。

请注意,您的模式包含冗余部分,您可以对单个分支使用regex:

代码语言:javascript
复制
 "(?m)^\\d+;\\d+;\\d\\d(?:\\*\\d+)?$"

详细信息

  • (?m)^ -行的开始
  • \\d+;\\d+; - 1+数字和; (2次)
  • \\d\\d -两位数
  • (?:\\*\\d+)? - *和1+数字的可选序列
  • $ -线的末端。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41960083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档