有人请说明这两个RegEx的差异吗? (在版本1和版本2之间)我在其中看到的唯一区别是额外的Paragraph para = new Paragraph();
para.Inlines.Add("Hello there");
// adjust spacing between paragraphs with Margin property
para.Margin = new System.Windows.Thickness(5, 1, 1, 5);
flowDoc.Blocks.Add(para);
但如果有人能够向我解释这意味着什么,将非常感谢!
第一版
<FlowDocument>
<Paragraph Name="newPara" Margin="5,1,1,5">
Hello There
</Paragraph>
</FlowDocument>
第二版
(.:\\.*?)
答案 0 :(得分:1)
RegExp: (.:\\.*?)
(
打开一个带编号的匹配组.
匹配每个字符 - 只有一个,因为在.
之后没有?,+,*或{...} \\
匹配\
字符.*
可以随时匹配任何字符(零,一,......,无限)?
告诉*
不要贪心,所以.*
会匹配所有字符,直到下一个\
)
关闭了匹配组示例:强>
Input:
`D:\Dept\CC\SDL\14-15\StaffAdministration\CFCA`
RegExp:
`^(.:\\.+?)(\\\d{2}-\d{2})(\\.*)$`
Result:
$Matches[0] = "D:\Dept\CC\SDL\14-15\StaffAdministration\CFCA"
$Matches[1] = "D:\Dept\CC\SDL"
$Matches[2] = "\14-15"
$Matches[3] = "\StaffAdministration\CFCA"
如果$YY
为"xxx"
,则"$($Matches[1])\$YY$($Matches[3])"
评估为
"D:\Dept\CC\SDL\xxx\StaffAdministration\CFCA"
第二个正则表达式版本不匹配,因为没有第二个:
字符。
注意:
有一种更简单的方法可以用另一个字符串替换14-15
有关详细信息,请参阅-replace
运算符。
<强>附录强>
a?
= a {0,1} a+
= a {1,} a*
= a {0,} aa
= a {2} 这是.NET Regular Expression Language引用。
这也是Python的RegExp reference。 PowerShell / .NET使用几乎相同的语法。