我们目前[^a-zA-Z0-9]
在 Java 的replaceAll
函数中使用从字符串中去除特殊字符。我们注意到,当连字符与数字混合时,我们需要允许它们。
不匹配连字符的示例:
- 1-2-3
- -1-23-4562
- --1---2--3---4-
- --9--a--7
- 425-12-3456
将匹配连字符的示例:
- --a--b--c
- 沃尔玛
我们认为我们使用这个 SO question作为参考制定了一个正则表达式来满足后一个标准,但我们不知道如何将它与原始正则表达式结合起来[^a-zA-Z0-9]
。
由于Lucene 的标准标记器在索引时的工作 方式,我们希望对 Lucene 搜索字符串执行此操作:
在连字符处拆分单词,除非标记中有数字,在这种情况下,整个标记被解释为产品编号并且不被分割。