目标结构如下:
検索结果:100,000件
如果我使用以下正则表达式模式:
((?<!検索結果:)(?<!次の)(((〇|一|二|三|四|五|六|七|八|九|十|百|千|万|億|兆|京+|[0-90-9]))(,|,|、)?).+((〇|一|二|三|四|五|六|七|八|九|十|百|千|万|億|兆|京|[0-90-9]).+)件)(?!表示)
如您所见,我想使用此模式将阿拉伯文数字或日文汉字(汉字)数字与所有以“検索结果:”和“次の”开头的内容不匹配。但是,模式以某种方式匹配最多4位数字,但不匹配6位数字。
换句话说
次の1000件
有效(表示它与任何内容都不匹配),但是
次の5,0000件
进行部分匹配(“ 0000件”)
我想知道为什么最多4位数字。最终希望找到一种使用此正则表达式不匹配任何内容的方法。我知道这个正则表达式有点混乱。预先感谢您的反馈!
答案 0 :(得分:2)
您需要避免在数字或数字+分隔符之后匹配数字,因此您需要在(?<![0-90-9])(?<![0-90-9][,,、])
之后添加(?<!次の)
:
(?<!検索結果:)(?<!次の)(?<![0-90-9])(?<![0-90-9][,,、])(?:[〇一二三四五六七八九十百千万億兆0-90-9]|京+)[,,、]?.+[〇一二三四五六七八九十百千万億兆京0-90-9].+件
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
请参见regex demo。
答案 1 :(得分:0)
这是我到目前为止看到的一个问题:
贩売実绩100万件 贩売実绩100万件 贩売実绩1,000件 贩売実绩1,000件 贩売実绩1,000,000件です 100,000件 5000件
这些都是匹配的,但是它捕获了两个匹配模式之间无关紧要的部分。例如,
贩売実绩100万件贩売実绩100万件
,因为一个字符串将匹配不应匹配的部分。