是什么导致这个?

时间:2014-05-17 00:39:12

标签: markdown

我现在正在使用降价博客,但我不知道为什么双方都有绿色利润

enter image description here  什么可以导致这个?以下是我的博客:

##匹配单个字符##
###匹配纯文本###

#

`文本`: My name is Ben

`正则表达式`:  Ben

`结果`: `Ben`

这里使用的正则表达式是纯文本,匹配原始文本里面的`Ben`.


<!-- more -->

#

`文本`: Hello, my name is Ben, my website is benforta.com

`正则表达式`:  my

`结果`: `my`

这里的正则表达式匹配了第一个`my`,但忽略了第二个`my`.默认情况下,正则表达式只匹配第一个匹配的结果,如果想把所有结果找出来,(例如在JavaScript里),可以使用g(global).

此外,正则表达式会区分大小写,my可以匹配my,但不能匹配My.

###匹配任意字符###

`.`在正则表达式里面可以匹配任意字符,甚至是字符本身.

#

`文本`: sales.xls  sales1.xls   sales2.xls   ape.xls   enrope.xls   na1.xls  na2.xls

`正则表达式`: sales.

`结果`: sales.  sales1  sales2

这里的`.`匹配了sales后的单个字符,所以只有sales1.xls和sales2.xls与之匹配.

#

`文本`: sales.xls  sales1.xls   sales2.xls   ape.xls   enrope.xls   na1.xls  na2.xls 

`正则表达式`: .a.\.xls

`结果`: na1.xls  na2.xls

这里的正则表达式中有一个`\`,表示转义.转义之后的`.`字符不再表示其在正则表达式里的意思,而只匹配一个普通的点.


##匹配一组字符##

###匹配多个字符中的某一个###

#

`文本`: sales.xls  sales1.xls   sales2.xls  sa1.xls  ape.xls   enrope.xls   na1.xls  na2.xls 

`正则表达式`: [ns]a.\.xls

`结果`: sa1.xls  na1.xls  na2.xls 

这里的正则表达式中的`[na]`表示匹配n和a中的任意一个字符.

#

`文本`: The phrase "regular expression" is often abbreviated as "regex" or "RegEx"

`正则表达式`: [Rr]eg[Ee]x

`结果`: regex, RegEx


###利用字符集合区间###

#

`文本`: sales.xls  sales1.xls   sales2.xls  sa1.xls  ape.xls   enrope.xls   na1.xls  na2.xls  sam.xls

`正则表达式`: [ns]a[0123456789]\.xls

`结果`: sa1.xls  na1.xls  na2.xls 

这里的文本中新加了一个sam.xls,但是我们只想匹配以n或s开头,以数字结尾的字符串,所以我们定义了一个数字区间来匹配所有的数字.但是这里的字符区间只匹配0-9,不能匹配10,20或者100.

* tips: 上面的[0123456789]可以用[0-9]来代替
* 还有一些可以也能使用连字符来代替的有: [a-z] [A-Z] 等等.

`note`: 连字符`-`是一个特殊的元字符,作为元字符它只能被用在[]之间,否则它就只是一个普通的字符与-匹配,不需要转义.

在一个字符集合里可以给出多个字符区间,比如下面这个集合里可以匹配任意的字母和数字(0-9之间):

`[a-zA-Z0-9]`


#

匹配RGB值(RGB值是由6个连续的任意字符或者0-9间的数字构成)

`文本`: <body bgcolor="#336655" text="#FFFFFF" height=10 width=20>

`正则表达式`: #[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]

`结果`: #336655, #FFFFFF


###取非匹配###

#

`文本`: sales.xls  sales1.xls   sales2.xls  sa1.xls  ape.xls   enrope.xls   na1.xls  na2.xls  sam.xls

`正则表达式`: [ns]a[\^0-9]\.xls

`结果`: sam.xls

这里的`^`表示非,所以[\^0-9]就表示不是0-9中数字的任意一个.


##使用元字符##

###对特殊字符进行转义###

`元字符`: 在正则表达式里面有特殊含义的字符,例如`.`是一个元字符,用来匹配任意字符.`^`是一个元字符,用来取非.

`转义`: 如果想要匹配字面意义上的元字符(而不是其在正则表达式里的意思),就需要进行转义.通常是在元字符前面加上反斜杠`\`.

# 

`文本`:

```javascript
var myArray = new Array();

if (myArray[0] == 0) {
    ...
}
```

`正则表达式`: myArray[0]

`结果`: myArray

本想匹配整个myArray[0],但却只匹配了myArray.因为[0]在正则表达式里表示集合中的一个,这里就是0,所以它期待的结果是myArray后面跟上0-9之间任意一个数字,这里没有匹配的结果,所以只匹配到了前面的字符串,所以需要对[]进行转义.

`正确的正则表达式`: myArray\[0\] 或者myArray\[[0-9]\]来匹配第0个到第9个数组.

`note`: 因为`\`在正则表达式里面也是一个元字符,如果想要匹配\,也需要对其转义,即`\\`.

下面的这张图表总结了一些特殊的元字符:

 {% img /images/regex-1_1.png %}

`tips`: 可以使用`\r\n`来匹配一个回车+换行的组合.


###匹配特定的字符类别###

####匹配数字与非数字####

`\d`: 匹配任意一个数字字符,等价于[0-9]

`\D`: 匹配任意一个非数字字符,等价于[\^0-9]

####匹配字母和数字与非字母和数字####

`字母和数字`: A-Z, a-z, 0-9和下划线`_`.

`\w`: 匹配任意一个字母数字字符或下划线集合(等价于[A-Za-a0-9])

`\W`: 与上面的匹配相反(等价于[\^A-Za-a0-9])

####匹配空白字符和飞空白字符####

`\s`: 匹配任意一个空白字符(等价于[\f\n\r\t\v])

`\S`: 匹配任意一个非空白字符(等价于[\^\f\n\r\t\v])

####使用POSIX字符类####

POSIX是许多正则表达式(但不是所有,例如JavaScript就不支持POSIX)都支持的一种简写形式.

下面是POSIX字符表:

 {% img /images/regex-1_2.png %}

可以使用POSIX来代替上面的一个例子:

#

`文本`: <body bgcolor="#336655" text="#FFFFFF" height=10 width=20>

`正则表达式`: #[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]

`结果`: #336655, #FFFFFF

这里的POSIX使用了两层括号,里面的一层表示POSIX字符类,外面的那一层表示字符集和.

1 个答案:

答案 0 :(得分:0)

好吧,我找到了解决方案。字符“&lt;”

之前应该有一个转义符