目标结构如下所示:
结果:100,000
如果我用下面的正则表达式:
((?<!検索結果:)(?<!次の)(((〇|一|二|三|四|五|六|七|八|九|十|百|千|万|億|兆|京+|[0-90-9]))(,|,|、)?).+((〇|一|二|三|四|五|六|七|八|九|十|百|千|万|億|兆|京|[0-90-9]).+)件)(?!表示)
正如你所看到的,我想一切的不匹配前面加上“検索结果:”&“次の”使用这种模式后接阿拉伯数字或日语汉字(中国字符)的数字。然而图案莫名其妙匹配最多4个位数,但不是6位数。
换一种说法,
下面1000
工作(这意味着它不匹配任何东西),但
下面5,0000评论
gives a partial match ("0000件")
我想知道为什么最多4个位数。而最终要找到一种方法,使用这种正则表达式不匹配任何东西。我知道这正则表达式是有点乱。在此先感谢您的反馈!
你需要避免一个数字或数字+分隔符后的数字匹配,所以你需要(?<![0-90-9])(?<![0-90-9][,,、])
之后添加(?<!次の)
:
(?<!検索結果:)(?<!次の)(?<![0-90-9])(?<![0-90-9][,,、])(?:[〇一二三四五六七八九十百千万億兆0-90-9]|京+)[,,、]?.+[〇一二三四五六七八九十百千万億兆京0-90-9].+件
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这里有一个问题,我看到到目前为止:
销售一百万销售人员一百万销售人员销售1000 1000个销售为100万10万5000
这些都是匹配的,但它抓住了两个匹配模式之间不相关的部分。例如,
销售部1万部的销量百万
作为一个字符串匹配,这不是应该匹配的部分。