【正则】特殊取值

编程有钱人了 2012-04-12 10:45:17
<w:r wsp:rsidRPr="00885B8F"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>11111</w:t></w:r>

<w:r wsp:rsidRPr="00885B8F"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>222222</w:t></w:r>

<w:r wsp:rsidRPr="00885B8F"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>3333</w:t></w:r>

我只想取出带 222的 这段文字
(?is)<w:r\b[^>]*>2\b222\b</w:r>

结果是

<w:r wsp:rsidRPr="00885B8F"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>222222</w:t></w:r>
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2012-04-12
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"><w:ignoreElements w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/><o:DocumentProperties><o:Title>去外地可减轻文化圈{$11}琼浆微乎其微</o:Title><o:Author>微软中国</o:Author><o:LastAuthor>微软中国</o:LastAuthor><o:Revision>5</o:Revision><o:TotalTime>2</o:TotalTime><o:Created>2012-04-12T01:56:00Z</o:Created><o:LastSaved>2012-04-12T03:02:00Z</o:LastSaved><o:Pages>1</o:Pages><o:Words>4</o:Words><o:Characters>28</o:Characters><o:Company>清华同方</o:Company><o:Lines>1</o:Lines><o:Paragraphs>1</o:Paragraphs><o:CharactersWithSpaces>31</o:CharactersWithSpaces><o:Version>11.0000</o:Version></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="宋体" w:h-ansi="Times New Roman" w:cs="Times New Roman"/><w:font w:name="宋体"><w:altName w:val="SimSun"/><w:panose-1 w:val="02010600030101010101"/><w:charset w:val="86"/><w:family w:val="Auto"/><w:pitch w:val="variable"/><w:sig w:usb-0="00000003" w:usb-1="080E0000" w:usb-2="00000010" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/></w:font><w:font w:name="@宋体"><w:panose-1 w:val="02010600030101010101"/><w:charset w:val="86"/><w:family w:val="Auto"/><w:pitch w:val="variable"/><w:sig w:usb-0="00000003" w:usb-1="080E0000" w:usb-2="00000010" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/></w:font></w:fonts><w:styles><w:versionOfBuiltInStylenames w:val="4"/><w:latentStyles w:defLockedState="off" w:latentStyleCount="156"/><w:style w:type="paragraph" w:default="on" w:styleId="a"><w:name w:val="Normal"/><wx:uiName wx:val="正文"/><w:rsid w:val="00A15D30"/><w:pPr><w:widowControl w:val="off"/><w:jc w:val="both"/></w:pPr><w:rPr><wx:font wx:val="Times New Roman"/><w:kern w:val="2"/><w:sz w:val="21"/><w:sz-cs w:val="24"/><w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/></w:rPr></w:style><w:style w:type="character" w:default="on" w:styleId="a0"><w:name w:val="Default Paragraph Font"/><wx:uiName wx:val="默认段落字体"/><w:semiHidden/></w:style><w:style w:type="table" w:default="on" w:styleId="a1"><w:name w:val="Normal Table"/><wx:uiName wx:val="普通表格"/><w:semiHidden/><w:rPr><wx:font wx:val="Times New Roman"/></w:rPr><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="list" w:default="on" w:styleId="a2"><w:name w:val="No List"/><wx:uiName wx:val="无列表"/><w:semiHidden/></w:style></w:styles><w:docPr><w:view w:val="print"/><w:zoom w:percent="100"/><w:bordersDontSurroundHeader/><w:bordersDontSurroundFooter/><w:attachedTemplate w:val=""/><w:defaultTabStop w:val="420"/><w:drawingGridVerticalSpacing w:val="156"/><w:displayHorizontalDrawingGridEvery w:val="0"/><w:displayVerticalDrawingGridEvery w:val="2"/><w:punctuationKerning/><w:characterSpacingControl w:val="CompressPunctuation"/><w:optimizeForBrowser/><w:validateAgainstSchema/><w:saveInvalidXML w:val="off"/><w:ignoreMixedContent w:val="off"/><w:alwaysShowPlaceholderText w:val="off"/><w:compat><w:spaceForUL/><w:balanceSingleByteDoubleByteWidth/><w:doNotLeaveBackslashAlone/><w:ulTrailSpace/><w:doNotExpandShiftReturn/><w:adjustLineHeightInTable/><w:breakWrappedTables/><w:snapToGridInCell/><w:wrapTextWithPunct/><w:useAsianBreakRules/><w:dontGrowAutofit/><w:useFELayout/></w:compat><wsp:rsids><wsp:rsidRoot wsp:val="009E4297"/><wsp:rsid wsp:val="000B5B94"/><wsp:rsid wsp:val="000E320B"/><wsp:rsid wsp:val="005F3192"/><wsp:rsid wsp:val="006C1DFC"/><wsp:rsid wsp:val="007F3F9C"/><wsp:rsid wsp:val="00885B8F"/><wsp:rsid wsp:val="009E4297"/><wsp:rsid wsp:val="009F3EEF"/><wsp:rsid wsp:val="00A15D30"/><wsp:rsid wsp:val="00A46793"/><wsp:rsid wsp:val="00A77F2B"/><wsp:rsid wsp:val="00BD48BC"/><wsp:rsid wsp:val="00C44A3E"/><wsp:rsid wsp:val="00CB2EDA"/></wsp:rsids></w:docPr><w:body><wx:sect><w:p wsp:rsidR="009E4297" wsp:rsidRDefault="009F3EEF" wsp:rsidP="00C44A3E"><w:pPr><w:rPr><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr></w:pPr><w:r wsp:rsidRPr="009F3EEF"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>222222</w:t></w:r></w:p><w:p wsp:rsidR="006C1DFC" wsp:rsidRDefault="000E320B" wsp:rsidP="00C44A3E"><w:pPr><w:rPr><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>去温泉问</w:t></w:r></w:p><w:p wsp:rsidR="006C1DFC" wsp:rsidRDefault="000E320B" wsp:rsidP="00C44A3E"><w:pPr><w:rPr><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>归途如虹任何人</w:t></w:r></w:p><w:p wsp:rsidR="006C1DFC" wsp:rsidRDefault="000E320B" wsp:rsidP="00C44A3E"><w:pPr><w:rPr><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>投影机秃鹫头饰地方</w:t></w:r></w:p><w:p wsp:rsidR="006C1DFC" wsp:rsidRPr="009F3EEF" wsp:rsidRDefault="006C1DFC" wsp:rsidP="00C44A3E"><w:pPr><w:rPr><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>裘德考个人股</w:t></w:r></w:p><w:sectPr wsp:rsidR="006C1DFC" wsp:rsidRPr="009F3EEF" wsp:rsidSect="00A15D30"><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/><w:cols w:space="425"/><w:docGrid w:type="lines" w:line-pitch="312"/></w:sectPr></wx:sect></w:body></w:wordDocument>




替换不出来
bdmh 2012-04-12
  • 打赏
  • 举报
回复

StreamReader reader = new StreamReader("c:\\1.txt");
string source = reader.ReadToEnd();
Regex reg = new Regex(@"<w:r.*<w:t>222222</w:t></w:r>");
Match mm = reg.Match(source);
MessageBox.Show(m.Value);
编程有钱人了 2012-04-12
  • 打赏
  • 举报
回复
8L的可以 谢谢大家 了 参与的都有分
huangwenquan123 2012-04-12
  • 打赏
  • 举报
回复
            string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"<w:r\b[^>]*?>(?:(?!<w:r\b[^>]*?>).)*<w:t>222222</w:t></w:r>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
编程有钱人了 2012-04-12
  • 打赏
  • 举报
回复
4L的和2L的谢谢了 上面的演示 字符串 我截取了一部分 用你们的正则式没问题的
但是实际应用项目 项目中是有点问题
<w:r\b[^>]*?>.*?<w:t>222222</w:t></w:r>
.*? 应该是不包含<w:r> 否则中间有的话 就会匹配到的
EnForGrass 2012-04-12
  • 打赏
  • 举报
回复

string inputstr = "你的字符串";
Regex reg = new Regex(@"(?is)(<w:r[^>]*>)[^\1]*?<w:t>222222</w:t></w:r>");
Match mreulststr = reg.Match(inputstr);
Console.WriteLine(mreulststr.Value);
EnForGrass 2012-04-12
  • 打赏
  • 举报
回复

code=C#]
string input="你的字符串";
Regex reg = new Regex(input,@"(?is)(<w:r[^>]*>)[^\1]*?<w:t>222222</w:t></w:r>");
Console.WriteLine(m.Value);
[/code]
huangwenquan123 2012-04-12
  • 打赏
  • 举报
回复
            string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"<w:r\b[^>]*?>.*?<w:t>222222</w:t></w:r>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
/*
<w:r wsp:rsidRPr="009F3EEF"><w:rPr><w:rFonts w:hint="fareast"/><wx:font wx:val="
宋体"/><w:sz w:val="30"/><w:sz-cs w:val="30"/></w:rPr><w:t>222222</w:t></w:r>

*/
fisher_85 2012-04-12
  • 打赏
  • 举报
回复
不是太懂你的意思,如果只是要22222这段的话:
<w:t>(222222)<\/w:t>
分组1就是你要的结果了。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧