正则表达式匹配 C 语言数字

     2023-02-17     261

关键词:

【中文标题】正则表达式匹配 C 语言数字【英文标题】:Regex expression to match C language numbers 【发布时间】:2013-01-05 19:23:59 【问题描述】:

我正在尝试匹配 Qt 中的数字以进行语法突出显示,并且我正在尝试以下正则表达式:

"[^a-fA-F_][0-9]+" // For numbers.
"[^a-fA-F_][0-9]+\\.[0-9]+" // For decimal numbers.
"[^a-fA-F_][0-9]+\\.[0-9]+e[0-9a-fA-F]+" // For scientific notation.
"[^a-fA-F_]0[xX][0-9a-fA-F]+" // For hexadecimal numbers.

但文本匹配,例如 [1024,并且也突出显示 [。我只想突出显示 1024 部分。

另一个问题是,当我键入 aoe2 和键入 aoe25 时,正则表达式会突出显示。当数字前面有字母或下划线时,我不想突出显示它,因为那样它将是一个标识符。

我该如何解决?

【问题讨论】:

没有从字符串中解析数字的函数吗?我至少知道strtoul,d(),但 Qt 可能还有更多? 你能提供一些示例文本和你想要的匹配吗?例如,您要匹配这些字符串中的哪一个? “aoe2”、“aoe25”、“1024”、“[1024” 我想获取数字在字符串上的位置,而不是数字本身,因为这样 Qt 引擎会突出显示这些位置的字符。 不知道C++正则表达式是否支持,但是这里需要负前瞻。 我只想匹配 C 数字,例如:1024、4856、284.582、0x48e14、42.42e42 等。但是当这些数字在标识符中时,正则表达式不应该匹配,例如“aoe45” , 并且当它们前面有运算符时应该匹配(仅数字),例如“[1024]”或“+24”。 【参考方案1】:

因为这个声明,它匹配[

[^a-fA-F_]
This will match anything that is not the letters A-F(any case) or an underscore

如果这是您想要的,为什么不直接匹配数字?

For integers:         \b\d+
For decimal numbers:  \b\d+.\d+
For scientific:       \b\d+e\d+
For hexadecimal:      \b[\dA-Fa-F]+

正如@Jan Dvorak 提到的,您可以使用单词边界\b,以确保您的匹配从单词(或数字)的开头开始。在此处查看示例:http://regex101.com/r/kC6dK3

【讨论】:

他不想匹配例如 aoe25 等变量中的数字 好吧,那我应该使用否定的lookbehind吗?我怎么能这么写,因为 Qt 似乎无法识别 (? @RenatoUtsch.. 好吧,你不需要消极的后视,而是消极的前瞻,比如:-(?![a-fA-F_])。但可能这也不会被支持。 是的,Qt 似乎不支持负向后视,也许我毕竟需要 libpcre ......伤心,多了一个依赖。 Word \boundary 来救援!

正则表达式

-[在线测试正则](https://c.runoob.com/front-end/854)####常用元字符串|元字符|说明||----|---------------||d|匹配数字||D|匹配任意非数字的字符||w|匹配字母或数字或下划线||W|匹配任意不是字母,数字,下划线||s|匹配任意的空白符||S|匹配任意... 查看详情

正则表达式c语言匹配汉字“银行”,怎么写啊???直接写“银行”匹配不出来,麻烦高手指点下,很急的

...不来了,需要怎么写呢??也就是说在c中银行作为正则表达式怎么写?》》追答char是单字节的要用string参考技术A中文在C语言中,是使用数据方式存储。一个中文在C语言称为‘字’,一个‘字’为32位数据,按《中文字型码表... 查看详情

正则表达式

正则表达式(本质是字符串)Pattern类字符 字符:x含义:代表的是字符x例如:匹配规则为"a",那么需要匹配的字符串内容就是”a” 字符:\含义:代表的是反斜线字符‘‘例如:匹配规则为"\",那么需要匹配的字... 查看详情

正则表达式(代码片段)

...词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,... 查看详情

C#正则表达式匹配方括号

】C#正则表达式匹配方括号【英文标题】:C#regularexpressiontomatchsquarebrackets【发布时间】:2013-06-1808:55:57【问题描述】:我正在尝试在C#中使用正则表达式来匹配可以包含的软件版本号:2位数字1位或2位数字(不以0开头)另一个1... 查看详情

正则表达式

...表符[[:blank:]] 纯数字[[:digit:]][0-9] 标点符号[[:punct:]]正则表达式,又称正规表示法、常规表示法(英语:RegularExpression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系... 查看详情

正则表达式

元字符在上面的例子中,^、d及$等这些符号,代表了特定的匹配意义,我们称之为元字符,常用的元字符如下:元字符说明.匹配除换行符意外的任意字符w匹配字母或数字或下划线s匹配任意的空白符d匹配数字匹配单词的开始或... 查看详情

正则表达式语法:

正则表达式语法: a|b 匹配a或b gr(a|e)y 匹配gray或grey . 匹配任一字符 [abc] 匹配任一字符:a或b或c [^abc] 匹配任一字符,但不包括a,b,c [a-z] 匹配从a到z之间的任一字符 [a-zA-Z] 匹配从a到z,及从A到Z之间的任一字符 ^ 匹配文件名的头部... 查看详情

pyday9-正则表达式

1、什么是正则表达式?  正则表达式,又称规则表达式,是一门小型的语言,通常被用来检索、替换那些符合某个模式(规则)的文本。2、匹配字符:  .匹配除换行符以外的任意字符  w 匹配字母或数字或下划线或汉字  s... 查看详情

C# 正则表达式匹配最后一个下划线后的最后一个数字

】C#正则表达式匹配最后一个下划线后的最后一个数字【英文标题】:C#Regexmatchthelastdigitafterthelastunderscore【发布时间】:2021-09-0711:58:42【问题描述】:使用正则表达式,我试图只获取最后一个下划线之后的最后一个数字(只能是... 查看详情

正则表达式

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言(字符)来给字符串定义一个规则,凡是符合规则的字符串,就认为它“匹配”了,否则,该字符串就是不合法的。 d可以匹配一个数... 查看详情

Java 正则表达式匹配数字模式

】Java正则表达式匹配数字模式【英文标题】:Javaregexmatchnumberpattern【发布时间】:2016-04-0409:59:31【问题描述】:我想检查我的号码是否与正则表达式匹配。我想要实现的是检查一个数字是否与模式匹配,而不是执行代码。我的if... 查看详情

用正则表达式匹配数字——只有数字和逗号

】用正则表达式匹配数字——只有数字和逗号【英文标题】:Matchingnumberswithregularexpressions—onlydigitsandcommas【发布时间】:2011-05-1320:43:21【问题描述】:我不知道如何为示例值构建正则表达式:123,456,789-12,341234-8你能帮帮我吗?... 查看详情

(二十三)

?.正则表达式  正则表达式,一个让人爱恨难分的东西,会的人,希望所有代码都是用正则表达。不懂的人,会想世界上怎么会有这种语言。但是有些地方使用正则的确是方便,例如,验证手机号,邮箱身份证等。再加以扩展... 查看详情

匹配0-590-23的正则表达式

这两天需要匹配的正则记录一下1./^(:?[1-5]?d([/-][1-5]?d)?|*)$/ 匹配0-59或者数字/数字数字-数字 或者*2./^[1-5]?d([/-][1-5]?d)?$/ 匹配0-59或者数字/数字数字-数字 或者*3./^(?:[1-5]?d|*|-|/)$/ 匹配0-59或者*-/4./^(2[0-3 查看详情

重复数字块的正则表达式匹配

】重复数字块的正则表达式匹配【英文标题】:RegexmatchforBlocksofrepeatingdigits【发布时间】:2021-10-0723:00:24【问题描述】:我正在尝试匹配重复数字块,例如27527527或45454545或49994949。我有8位数字。我想创建一个regex,仅当模式中至... 查看详情

只有在字符串中找到一组数字时,C# 正则表达式才匹配

】只有在字符串中找到一组数字时,C#正则表达式才匹配【英文标题】:C#Regexmatchonlyifonegroupofnumbersisfoundinstring【发布时间】:2021-12-0600:38:37【问题描述】:我正在尝试提出一个正则表达式来处理从字符串中捕获一个数字的一​... 查看详情

php正则表达式只能包含字母和数字

php正则表达式只能包含字母和数字判断字符串是否只包含字母和数字例如$a="123";$b="acb";$c="abc123";abc变量都可以通过判断实在不会正则多谢大佬了/抱拳式子:/^[a-zA-Z0-9]+$/u释义:"/":表示正则表达式... 查看详情