Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何匹配正则表达式中的精确单词_Regex - Fatal编程技术网

Regex 如何匹配正则表达式中的精确单词

Regex 如何匹配正则表达式中的精确单词,regex,Regex,我下面有一个字符串,我想从总数中提取数字(12000),但不是从客户小计中提取 CLIENT SUB-TOTAL : 12,000 12,000 ------------ ------------ ------------ ------------

我下面有一个字符串,我想从总数中提取数字(12000),但不是从客户小计中提取

CLIENT SUB-TOTAL :       12,000                                    12,000
                                                          ------------  ------------  ------------  ------------
                                                  TOTAL :       12,000                                    12,000
我试过使用下面的正则表达式,但它仍然匹配2组

(?:TOTAL :       )([0-9]+[,]+[0-9]+)

感谢您的帮助

您可以尝试做一个否定的断言,
TOTAL
前面没有破折号。类似于以下内容的操作将起作用:


您不需要非捕获组
(?:
),因为您只匹配文本

也不是说您不需要这里的方括号,
[,]+
,而且由于
+
的原因,它也可能匹配
,,,

如果支持负查找,您可以在左侧断言一个空格边界,而不是硬编码确切的空格数,使用
[^\S\r\n]+

(?<!\S)TOTAL[^\S\r\n]+:[^\S\r\n]+([0-9]+,[0-9]+)\b
(?

这是一种简单快捷的方法,您可以在前面添加一个空格“(?:TOTAL:)([0-9]+[,]+[0-9]+)”您能试试吗:
(?