Regex 如何匹配正则表达式中的精确单词
我下面有一个字符串,我想从总数中提取数字(12000),但不是从客户小计中提取Regex 如何匹配正则表达式中的精确单词,regex,Regex,我下面有一个字符串,我想从总数中提取数字(12000),但不是从客户小计中提取 CLIENT SUB-TOTAL : 12,000 12,000 ------------ ------------ ------------ ------------
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]+)”您能试试吗:(?