专门应用 java 模式匹配器来提取 html 个元素,忽略一些字符
exclusively apply java pattern matcher to extract html elements, ignore some characters
我正在使用此代码:
Pattern pat_1 = Pattern.compile("class=\"\"pinyin\"\">(.*?)<script>");
Matcher mat_1 = pat_1.matcher( text );
while( mat_1.find() )
{
System.out.println( mat_1.group(1) );
}
这是匹配的输入数据源:
<br>
<span class=""b"">拼音:</span><span class=""pinyin"">xī<script>Setduyin('Duyin/xi1')</script></span> <span class=""b"">注音:</span><span class=""pinyin"">ㄒㄧ<script>Setduyin('Duyin/xi1')</script></span><br>
<span class=""b"">简体部首:</span>丨 <span class=""b"">部首笔画:</span>1 <span class=""b"">总笔画:</span>8<br><span class=""b"">繁体部首:</span>卜 <span class=""b"">部首笔画:</span>2 <span class=""b"">总笔画:</span>8<br><span class=""b"">康熙字典笔画</span>( 卥:8; )
我的代码的问题是它也选择了 ㄒㄧ
,因为前面的元素和处理的元素是相同的。我怎么能排除 ㄒㄧ
而只排除 select xī
。也许我可以使用 <br>
标签,因为这是第一次使用时所特有的东西,但这需要标识一个新行并忽略 拼音:
如何做到这一点?我一直在玩 regex101.com 但我还不能确定它。
所以现在要清楚 java 代码的输出是
xī
ㄒㄧ
但我只希望它是
xī
我正在使用此代码:
Pattern pat_1 = Pattern.compile("class=\"\"pinyin\"\">(.*?)<script>");
Matcher mat_1 = pat_1.matcher( text );
while( mat_1.find() )
{
System.out.println( mat_1.group(1) );
}
这是匹配的输入数据源:
<br>
<span class=""b"">拼音:</span><span class=""pinyin"">xī<script>Setduyin('Duyin/xi1')</script></span> <span class=""b"">注音:</span><span class=""pinyin"">ㄒㄧ<script>Setduyin('Duyin/xi1')</script></span><br>
<span class=""b"">简体部首:</span>丨 <span class=""b"">部首笔画:</span>1 <span class=""b"">总笔画:</span>8<br><span class=""b"">繁体部首:</span>卜 <span class=""b"">部首笔画:</span>2 <span class=""b"">总笔画:</span>8<br><span class=""b"">康熙字典笔画</span>( 卥:8; )
我的代码的问题是它也选择了 ㄒㄧ
,因为前面的元素和处理的元素是相同的。我怎么能排除 ㄒㄧ
而只排除 select xī
。也许我可以使用 <br>
标签,因为这是第一次使用时所特有的东西,但这需要标识一个新行并忽略 拼音:
如何做到这一点?我一直在玩 regex101.com 但我还不能确定它。
所以现在要清楚 java 代码的输出是
xī
ㄒㄧ
但我只希望它是
xī