尝试不使用RegEx负面后观匹配日语单词

Mic*_*ael 6 regex cjk regex-negation

目标结构如下所示:

検索结果:100,000件

如果我使用以下正则表达式模式:

((?<!?????)(?<!??)(((?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?+|[0-9?-?]))(,|?|?)?).+((?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|[0-9?-?]).+)?)(?!??)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我希望使用这种模式,然后是阿拉伯数字或日文汉字(中文字符)数字,以"検索结果:"和"次の"之前的所有内容取消匹配.但是,模式以某种方式匹配最多4位数而不是6位数.

换一种说法,

次の1000件

工作(意味着它不匹配任何东西),但是

次の5,0000件

给出部分匹配("0000件")

我想知道为什么最多4位数.最终想找到一种方法,使用这个正则表达式来匹配任何东西.我知道这个正则表达式有点凌乱.在此先感谢您的反馈!

Wik*_*żew 2

您需要避免匹配数字或数字+分隔符后面的数字,因此您需要(?<![\xef\xbc\x90-\xef\xbc\x990-9])(?<![\xef\xbc\x90-\xef\xbc\x990-9][\xef\xbc\x8c,\xe3\x80\x81])在后面添加(?<!\xe6\xac\xa1\xe3\x81\xae)

\n\n
(?<!\xe6\xa4\x9c\xe7\xb4\xa2\xe7\xb5\x90\xe6\x9e\x9c\xef\xbc\x9a)(?<!\xe6\xac\xa1\xe3\x81\xae)(?<![\xef\xbc\x90-\xef\xbc\x990-9])(?<![\xef\xbc\x90-\xef\xbc\x990-9][\xef\xbc\x8c,\xe3\x80\x81])(?:[\xe3\x80\x87\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89\xe5\x9b\x9b\xe4\xba\x94\xe5\x85\xad\xe4\xb8\x83\xe5\x85\xab\xe4\xb9\x9d\xe5\x8d\x81\xe7\x99\xbe\xe5\x8d\x83\xe4\xb8\x87\xe5\x84\x84\xe5\x85\x860-9\xef\xbc\x90-\xef\xbc\x99]|\xe4\xba\xac+)[,\xef\xbc\x8c\xe3\x80\x81]?.+[\xe3\x80\x87\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89\xe5\x9b\x9b\xe4\xba\x94\xe5\x85\xad\xe4\xb8\x83\xe5\x85\xab\xe4\xb9\x9d\xe5\x8d\x81\xe7\x99\xbe\xe5\x8d\x83\xe4\xb8\x87\xe5\x84\x84\xe5\x85\x86\xe4\xba\xac0-9\xef\xbc\x90-\xef\xbc\x99].+\xe4\xbb\xb6\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n
Run Code Online (Sandbox Code Playgroud)\n\n

请参阅正则表达式演示

\n