我正在尝试编写一个正则表达式,该正则表达式与标记的全部内容相匹配,减去任何前导或尾随空格。下面是一个简化的输入示例:
<tag> text</tag>
我只希望匹配以下内容(请注意比赛前后的空格是如何被裁剪的):
“文本”
我目前正尝试在.NET (Powershell)中使用这个正则表达式:
(?<=<tag>(\s)*).*?(?=(\s)*</tag>)但是,这个regex匹配"text“加上标记中的前导空格,这是不需要的。我如何才能使我的正则表达式按预期工作?
发布于 2010-09-29 04:43:40
放下围观,他们只会使工作变得比需要的更复杂。相反,使用一个捕获组来选择您想要的部分:
<tag>\s*(.*?)\s*</tag>您想要的部分以$matches[1]的形式提供。
发布于 2010-09-29 01:46:24
You should not use regext to parse html。
使用解析器代替。
还有:Regex to remove body tag attributes (C#)
还包括:RegEx match open tags except XHTML self-contained tags
如果所有这些都不能让你信服,那就不要在表达的中间使用点。使用字母数字转义。你的点正在消耗空白。用\w (我想)代替。
发布于 2010-09-29 01:50:13
使用这些正则表达式来剥离尾随和前导空格。/^\s+/和/\s+$/
https://stackoverflow.com/questions/3818219
复制相似问题