正则表达式

来源:互联网 发布:mac口红 编辑:程序博客网 时间:2024/04/27 16:59

1 偶然间看到大神写的Regex.Repalce(input,parrent,$1) 于是百度下记录。


替代
 替换是替换模式中支持的正则表达式语言元素。 

字符

描述

模式

替换模式

输入字符串

结果字符串

$数值

替换按组 number 匹配的子字符串。

\b(\w+)(\s)(\w+)\b

$3$2$1

"one two"

"two one"

${name}

替换按命名组 name 匹配的子字符串。

\b(?<word1>\w+)(\s)(?<word2>\w+)\b

${word2} ${word1}

"one two"

"two one"

$$

替换字符“$”。

\b(\d+)\s?USD

$$$1

“103 USD”

“$103”

$&

替换整个匹配项的一个副本。

\$?\d*\.?\d+

**$&**

"$1.30"

“**$1.30**”

$`

替换匹配前的输入字符串的所有文本。

B+

$`

“AABBCC”

“AAAACC”

$'

替换匹配后的输入字符串的所有文本。

B+

$'

“AABBCC”

“AACCCC”

$+

替换最后捕获的组。

B+(C+)

$+

“AABBCCDD”

AACCDD

$_

替换整个输入字符串。

B+

$_

“AABBCC”

“AAAABBCCCC”


$1 就是把pattern中分组匹配中的索引为1的内容 替换到结果中。

2 针对下面的表示还百度了很长时间才看懂的,有实力的确实写出来的东西不一般。
@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)+)</a>"

针对?is 类型的 
正则表达式选项(msdn上都有)

可以指定控制正则表达式引擎如何解释正则表达式模式的选项。 其中的许多选项可以指定为内联(在正则表达式模式中)或指定为一个或多个 RegexOptions 常量。 本快速参考仅列出内联选项。

可通过两种方式指定内联选项:

  • 通过使用杂项构造(?imnsx-imnsx),可以用选项或选项组前的减号 (-) 关闭这些选项。 例如,(?i-mn) 启用不区分大小写的匹配 (i),关闭多行模式 (m) 并关闭未命名的组捕获 (n)。 该选项自定义选项的点开始应用于此正则表达式,且持续有效直到模式结束或者到另一构造反转此选项的点。

  • 通过使用分组构造(?imnsx-imnsx:子表达式)(只定义指定组的选项)。

.NET Framework 正则表达式引擎支持以下内联选项。

选项

描述

模式

匹配

i

使用不区分大小写的匹配。

\b(?i)a(?-i)a\w+\b

"aardvark", "aaaAuto" in "aardvark AAAuto aaaAuto Adam breakfast"

m

使用多行模式。 ^ 和 $ 匹配行的开头和结尾,但不匹配字符串的开头和结尾。

有关示例,请参阅正则表达式选项中的“多行模式”部分。

 

n

不捕获未命名的组。

有关示例,请参阅正则表达式选项中的“仅显式捕获”部分。

 

s

使用单行模式。

有关示例,请参阅正则表达式选项中的“单行模式”部分。

 

x

忽略正则表达式模式中的非转义空白。

\b(?x) \d+ \s \w+ 

“1 aardvark 2 cats IV centurions”中的“1 aardvark”、“2 cats”






原创粉丝点击