0
文字列が変数fromFile
に割り当てられている。このようなものです:私の2つのREGEXを簡略化するには?
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>TODO write content</div>
<span class="test"></span>
<ruby>
text1<rp>(</rp><rt>textA</rt><rp>)</rp>
text2<rp>(</rp><rt>textB</rt><rp>)</rp>
text3<rp>(</rp><rt>textC</rt><rp>)</rp>
</ruby>
<img src="images/aaaaa.jpg">
<img src="./audio/bbbbb.mp3">
<img src="../../audio/ccccc.mp3">
<img class="aaaa">
<input class="bbbb">
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</body>
</html>
と私の正規表現は、次のとおりです。
final Pattern pattern = Pattern.compile("(<rt>(.+?)</rt>)|(?=(\\b(\\w*\\S)\\b)<rp>)");
final Pattern pattern2 = Pattern.compile("(?=(\\b(\\w*\\S)\\b)<rp>)");
final Matcher matcher = pattern.matcher(fromFile);
final Matcher matcher2 = pattern2.matcher(fromFile);
while(matcher.find()) {
matcher2.find();
fromFile = "<font class=\"ruby\" title=\"" + matcher.group(1) + "\"" + ">" + matcher2.group(1) + "</font>";
break;
}
if((matcher.find()) != true) {
System.out.println(fromFile);
}
私は単純にのみ使用し、それをしたいのですが1つの正規表現は同じ出力を生成します。 最初の正規表現は<rt></rt>
の中の要素を抽出し、2番目の正規表現はタグ<rp>
の前にデータを取得します。割り当てられたデータはmatcher.group(1)
とmatcher2.group(1)
です。
感謝を同じライン上の文字列の両方にマッチする正規表現を書くことができます@サラバナ! –