我需要能够匹配包含"Volume"的音乐专辑名称中的字符串以将其转换为标准格式,因此以下示例将全部变为"这是一个测试,第 1 卷":
- "这是测试卷 1"
- "这是一个测试卷。1"
- "这是测试卷。1"
- "这是测试第一卷"
- "这是测试第一卷"
- "这是一个测试,第 1 卷"
- "这是一个测试,第 1 卷"
经过几分钟的混乱,我已经差不多了,但是有一个问题。我只需要在后面有一个数字时匹配,但这个数字可以写成一个数字(1,2,3)或一个单词(一,二,三)。这些数字可能会相对较高,例如20(二十)等。显然,如果这张专辑被称为"调高音量",我不希望它把它改成"调高音量,卷"。
我该怎么做?
这是我到目前为止得到的:
/,*'sVol(ume)*'.*'s*/gi
https://www.regex101.com/r/tI8nV7/1'
还有另一种情况增加了更多的复杂性:
- "这是一个测试(第 1 卷)"
这仍然应该转换为:"这是一个测试,第 1 卷"
使用前瞻检查匹配项后跟 123 或字符串 1、2、3。
,?'h*Vol(?:ume)?'.?'h*(?=(?:[123]|one|two|three)'b)
演示