在下面给出的匹配中: 为什么第一场比赛是给出那个输出...... 并在第二场比赛中为什么' - '与目标不匹配
_validateCouponCode in Mage_Sales_Model_Quote
编辑: -
感谢您询问代码
请在此处找到代码:http://paste.ubuntu.com/11831819/
答案 0 :(得分:4)
第一个匹配行/字符串^[a-z]
开头的任何字符和行/字符串\?$
末尾的问号,这是因为
在第二个中, [] 表示匹配集合中的字符,而 - 表示“之间”,因此匹配其ascii值为的字符在 \ (具有ascii值92)和 ^ (具有ascii值94)或 $。* +()| 之一之间。由于 - 的ascii值为46,因此不会显示。
要解决您的问题,您应引用-
[\\\-^$.?*+()|]
或将其放在最后
[\\^$.?*+()|-]
。当然这是bash但是:
echo 'begin []\^$.?*+()|- end' | sed -e 's/[][\\^$.?*+()|-]/x/g'
begin xxxxxxxxxxxxx end
所有特殊字符都被x
替换,而我只引用\
,因为所有其他字符都放在右边。如果我移动-
或[
或]
我也必须引用它们。