我有一個字符串,我想在正則表達式中使用它,就像m/$mystring_03/
一樣,但是$mystring
包含導致問題的+ s和斜槓。在Perl中有沒有一種簡單的方法來修改$mystring
以確保所有正則表達式通配符或其他特殊字符能夠正確轉義? (像所有+
變成\+
)使字符串在Perl中正則表達式安全
回答
是,使用\Q
and \E
escapes:
#!/usr/bin/perl
use strict;
use warnings;
my $text = "a+";
print
$text =~ /^$text$/ ? "matched" : "didn't match", "\n",
$text =~ /^\Q$text\E$/ ? "matched" : "didn't match", "\n";
如果你想逃避字符串中的正則表達式所有的特殊字符,你可以一樣好使用RINDEX像
index($_, "$mystring_03")
此返回字符串的索引您想要測試的字符串,如果找不到匹配,則返回-1。
整個正則表達式可能不在字符串中。 – 2010-09-02 17:06:31
@Chas。歐文斯如果整個正則表達式(在引用之後)不在字符串中,它不會匹配,是嗎?我沒有關注......什麼時候一個完全引用的正則表達式會給出一個子字符串檢查的不同結果? – 2010-09-02 17:17:55
爲什麼提到'rindex'而不提'索引'? – mob 2010-09-02 17:22:12
- 1. 使字符串「正則表達式安全」
- 2. 在perl中使用正則表達式解析字符串
- 3. Perl正則表達式用正則表達式的子串替換字符串
- 4. 使用Perl正則表達式的字符串模式匹配
- 5. ASP經典的正則表達式:字符串URL安全
- 6. 在perl中連接變量和字符串正則表達式
- 7. 正則表達式安全
- 8. 使用正則表達式在字符串中轉義正則表達式
- 9. 字符串使用正則表達式替換正則表達式字符類
- 10. Perl正則表達式和<字符
- 11. Perl正則表達式正則表達式匹配字符串除外,不匹配字符串
- 12. 使用Perl返回子字符串正則表達式
- 13. 正則表達式的正則表達式的Java字符串
- 14. 正則表達式正則表達式匹配字符串
- 15. 正則表達式(正則表達式)的子字符串
- 16. Javascript正則表達式 - 正則表達式拆分字符串
- 17. Perl正則表達式匹配字符串中的URI
- 18. 可變字符串中的Perl正則表達式
- 19. 在Perl的正則表達式相同取一些字符串
- 20. Perl的正則表達式在字符串
- 21. 使用正則表達式或安全的方式找到子字符串
- 22. 正則表達式字符串在python
- 23. 正則表達式 - 在字符串
- 24. 正則表達式在字符串
- 25. 正則表達式在字符串
- 26. 正則表達式在字符串
- 27. Perl追加正則表達式到搜索字符串模式
- 28. 正則表達式 - 使用正則表達式在另一個字符串中搜索特定的字符串
- 29. 在Perl中使用正則表達式查找空字符
- 30. 在Perl中使用正則表達式匹配字符
[我如何處理Perl正則表達式中的特殊字符?](http://stackoverflow.com/questions/576435/how-do-i-handle-special-characters-in-a-perl-正則表達式) – daxim 2011-03-25 14:28:00