加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则转义

发布时间:2020-12-14 01:10:19 所属栏目:百科 来源:网络整理
导读:在使用solr是,需要将特殊字符转义,在网上搜索,大多数结果为 static public function escape($value) { //list taken from http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters $pattern = '/(+|-||||!|(|)|

在使用solr是,需要将特殊字符转义,在网上搜索,大多数结果为

  
  
static public function escape($value)
{
//list taken from http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
$pattern = '/(+|-|&|||!|(|)|{|}|[|]|^|"|~|*|?|:|;|~|/)/';
$replace = '$1';
return preg_replace($pattern,$replace,$value);
}
但是在使用时,发现不能正确使用。

经过摸索,最终得到正确的结果:

Regex regex1 = new Regex("([+-&|!(){}[]^"~*?:()])");
var test = regex1.Replace(content,"$1");

对这个正则解释下:

([+-&|!(){}[]^"~*?:()])

1、 最外面是一个括号,意思是这里面的当成一个组。”组“的解释为:将 ( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个 临时区域(一个正则表达式中最多可以保存9个),它们可以用 1 到9 的符号来引用。链接为http://baike.baidu.com/link?url=oSRwAnr6GMDEp3T9_BicqhUUE218ISEzOmvGKND26UOtLKuEVLZlt3pw3qpDSu_zk3WGn_ypH8AHnggxm9H4da#7

2、大括号里面是中括号,表示匹配中括号中的任何一个字符

3、regex1.Replace(content,"$1"); $1表示正则中匹配到的字符, 具体含义在上面的链接中。

$1表示在正则中匹配的字符钱再加一个斜杠。此处两个斜杠中的前一个斜杠是转义。

regex1.Replace(content,"$1")表示在匹配字符钱加一个斜杠

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读