【发布时间】:2017-01-31 07:27:05
【问题描述】:
我有一个存储在文本文件中的模式,我正在从文件中读取并使用该模式来匹配字符串。
示例:/abc/def[\d]/ghi
现在我希望它应该与 /abc/def[1]/ghi、/abc/def[2]/ghi 匹配
如果我使用 Pattern.quote("/abc/def[\d]/ghi"),它会将整个输入视为字面量,因此只有匹配的字符串是 "/abc/def[\d] /ghi"
所以我必须将模式保存在像 /abc/def\[\d\]/ghi 这样的文件中,这样我就失去了可读性。
有什么方法可以专门转义几个字符,比如我希望 '\d' 具有特殊含义,但不希望 '[]' 具有特殊含义。
【问题讨论】:
-
一个简单的解决方案可能会出现问题:假设匹配字符串
/abc[\d]/def[\d]/ghi第一个[\d\]应该被视为文字,而第二个应该被视为字符组。你怎么知道的?