NutzCN Logo
问答 寻求个文本替换方法 最好是用真规则
发布于 2947天前 作者 Rekoe 1884 次浏览 复制 上一个帖子 下一个帖子
标签:

如一下代码

<div class="story-body__inner" property="articleBody"> 
 <figure class="media-landscape has-caption full-width"> 
  <span class="image-and-copyright-container"> 
   <div class="js-delayed-image-load" data-alt="دبابة إسرائيلية في الجولان" data-src="http://ichef-1.bbci.co.uk/news/320/cpsprodpb/5DC8/production/_92680042_hi036604082.jpg" data-width="976" data-height="549"></div> <span class="off-screen">Image copyright</span> <span class="story-image-copyright">Reuters</span> </span> 
  <figcaption class="media-caption"> 
   <span class="off-screen">Image caption</span> 
   <span class="media-caption__text"> هاجم المسلحون دورية للجيش الاسرائيلي في مرتفعات الجولان </span> 
  </figcaption> 
 </figure>
 <p>قال متحدث باسم الجيش الإسرائيلي إن إربعة مسلحين موالين لتنظيم الدولة الإسلامية قتلوا في غارة جوية نفذها الطيران الإسرائيلي الاحد داخل التراب السوري، بعد إطلاقهم النار على دورية إسرائيلية في مرتفعات الجولان.</p>
 <div id="bbccom_mpu_3" class="bbccom_slot mpu-ad" aria-hidden="true"> 
  <div class="bbccom_advert"> 
   <script type="text/javascript">
            /**/
            (function() {
                if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
                    bbcdotcom.adverts.slotAsync('mpu', [3]);
                }
            })();
            /**/
        </script> 
  </div> 
 </div>
 <p>وردت الدورية التابعة للجيش الإسرائيلي بإطلاق النار على مهاجميها، كما استعانت يالطيران الإسرائيلي الذي ارسل طائرة قصفت المجموعة المهاجمة داخل الأراضي السورية.</p>
 <p>وأضاف المتحدث باسم الجيش الإسرائيلي بيتر ليرنر، إن دورية الجنود الإسرائيليين وقعت تحت نيران سيارة مجهزة بمدفع رشاش كان يستقلها مسلحون، وصفوا بأنهم أعضاء في جماعة "شهداء اليرموك" الموالية لتنظيم الدولة الاسلامية. </p>
 <div id="bbccom_mpu_1_2" class="bbccom_slot mpu-ad" aria-hidden="true"> 
  <div class="bbccom_advert"> 
   <script type="text/javascript">
            /**/
            (function() {
                if (window.bbcdotcom && bbcdotcom.adverts && bbcdotcom.adverts.slotAsync) {
                    bbcdotcom.adverts.slotAsync('mpu', [1,2]);
                }
            })();
            /**/
        </script> 
  </div> 
 </div>
 <p>وأكد المتحدث أنه لم يصب أي من الجنود الإسرائيليين في الاشتباك.</p>
 <p> ولاتتدخل إسرائيل عسكريا في الحرب الدائرة في سوريا منذ أكثر من خمس سنوات، لكن تقع حوادث إطلاق نار باتجاه الجولان تعزوها إسرائيل في الغالب إلى أخطاء يرتكبها حنود الجيش السوري الحكومي.</p>
 <figure class="media-landscape has-caption full-width"> 
  <span class="image-and-copyright-container"> 
   <div class="js-delayed-image-load" data-alt="منطقة الحدود في مرتفعات الجولان" data-src="http://ichef-1.bbci.co.uk/news/320/cpsprodpb/0F9D/production/_92679930_a7145fbe-eb22-43da-9bdb-6bbcb9f186e1.jpg" data-width="976" data-height="549"></div> </span> 
  <figcaption class="media-caption"> 
   <span class="off-screen">Image caption</span> 
   <span class="media-caption__text"> منطقة الحدود في مرتفعات الجولان </span> 
  </figcaption> 
 </figure>
 <p>وتحتل اسرائيل مساحة 1200 كيلومترا مربعا في مرتفعات الجولان السورية منذ حرب حزيران عام 1967 ،وقد أعلنت لاحقا ضم هذه الاراضي اليها من دون أن تحظى خطوتها تلك بأي اعتراف من المجتمع الدولي. </p>
 <p>ويعد الجيش الإسرائيلي الحكومة السورية مسؤولة عن أي هجمات أو اطلاق نار انطلاقا من أراضيها بغض النظر عن مصدرها. </p> 
</div>

根据 xpath

//figure[@class='media-landscape has-caption full-width']

可以获得两个语句块 如果我想把这两个语句块用特殊的数据替换掉 比如 分别替换
谁有好的方法么

=========
<figure class="media-landscape has-caption full-width"> 
 <span class="image-and-copyright-container"> 
  <div class="js-delayed-image-load" data-alt="دبابة إسرائيلية في الجولان" data-src="http://ichef-1.bbci.co.uk/news/320/cpsprodpb/5DC8/production/_92680042_hi036604082.jpg" data-width="976" data-height="549"></div> <span class="off-screen">Image copyright</span> <span class="story-image-copyright">Reuters</span> </span> 
 <figcaption class="media-caption"> 
  <span class="off-screen">Image caption</span> 
  <span class="media-caption__text"> هاجم المسلحون دورية للجيش الاسرائيلي في مرتفعات الجولان </span> 
 </figcaption> 
</figure>
>>>>>>>>>
=========
<figure class="media-landscape has-caption full-width"> 
 <span class="image-and-copyright-container"> 
  <div class="js-delayed-image-load" data-alt="منطقة الحدود في مرتفعات الجولان" data-src="http://ichef-1.bbci.co.uk/news/320/cpsprodpb/0F9D/production/_92679930_a7145fbe-eb22-43da-9bdb-6bbcb9f186e1.jpg" data-width="976" data-height="549"></div> </span> 
 <figcaption class="media-caption"> 
  <span class="off-screen">Image caption</span> 
  <span class="media-caption__text"> منطقة الحدود في مرتفعات الجولان </span> 
 </figcaption> 
</figure>
>>>>>>>>>
8 回复

把两个语句块 替换成某些特殊的字符 比如某个图片的地址

String s = "aaaaa <figure 123> bbbb </figure> cccc <figure123> dddd </figure>";
String regex = "<figure.+?</figure>"; 
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s); 
s = m.replaceAll("");
System.out.print(s);

运行结果 aaaaa cccc

@wudy1989
你把 一楼的代码存 文件里 然后这样试试 好像不可以达到效果

		String t = Files.read("e:/content.txt");
		String regex = "<figure.+?</figure>"; 
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(t); 
		t = m.replaceAll("");
		System.out.print(t);
String regex = "<figure((.|\n)+?)</figure>"; 

试试这个

@wudy1989
还是不行 好像和内容中有换行符有关系

String regex = "<figure((.|\n)+?)</figure>"; 
	  Pattern p = Pattern.compile(regex,Pattern.MULTILINE | Pattern.DOTALL);
	  Matcher m = p.matcher(sb.toString()); 
	  String t = m.replaceAll("");
	  System.out.print(t);

多行匹配

@wudy1989
多谢 解决了

添加回复
请先登陆
回到顶部