如何更改以下代码,以便它不关心大小写?
public static String tagValue(String inHTML, String tag)
throws DataNotFoundException {
String value = null;
Matcher m = null;
int count = 0;
try {
String searchFor = "<" + tag + ">(.*?)</" + tag + ">";
Pattern pattern = Pattern.compile(searchFor);
m = pattern.matcher(inHTML);
while (m.find()) {
count++;
return inHTML.substring(m.start(), m.end());
// System.out.println(inHTML.substring(m.start(), m.end()));
}
} catch (Exception e) {
throw new DataNotFoundException("Can't Find " + tag + "Tag.");
}
if (count == 0) {
throw new DataNotFoundException("Can't Find " …Run Code Online (Sandbox Code Playgroud) 我有两个文件,XML和HTML,需要从某些模式中提取数据.
我的XML文件格式很好,我可以使用readline读取一行并在标签之间搜索数据.
if($line =~ /\<tag1\>$varvalue\<\/tag1\>/)`
Run Code Online (Sandbox Code Playgroud)
但是,对于我的HTML,它有一个我见过的最糟糕的代码,文件是这样的:
<div class="theater">
<h2>
<a href="/showtimes/university-village-3" >**University Village 3**</a></h2>
<div class="address">
<i>**3323 South Hoover Street, Los Angeles CA 90007 | (213) 748-6321**</i>
</div>
</div>
<div class="mtitle">
<a href="/movie/dream-house-2011" title="Dream House" onmouseover="mB(event, 771204354);" >**Dream House**</a>
<span>**(PG-13 , 1 hr. 31 min.)**</span>
</div>
<div class="times">
**1:00 PM,**
</div>
Run Code Online (Sandbox Code Playgroud)
现在从这个文件我需要选择以粗体显示的数据.
我可以使用Perl正则表达式来搜索此文件中的数据.
我在网上看到了以下正则表达式,并想将其实现到我的 Java 应用程序中(使用 java.util.regex)。
\n\n(?<=(<Anhang>))(\\w|\\d|\\n|[().,\\-:;@#$%^&*\\[\\]"\'+\xe2\x80\x93/\\/\xc2\xae\xc2\xb0\xe2\x81\xb0!?{}|`~]| )+?(?=(<\\/Anhang>))\nRun Code Online (Sandbox Code Playgroud)\n\n这应该与 中包含的任何内容匹配\'<Anhang>\'。
它在 JavaScript 引擎中工作正常,但我无法让它在 Java 中工作。
\n\n在这里,我使用 JavaScript 引擎在regex101上针对此文本进行了测试:
\n\nBLALBLA BLA BLA <Anhang> \ngonegone gone gone ,os .psd\n</Anhang> ajdajadw\nRun Code Online (Sandbox Code Playgroud)\n\n产生以下结果:
\n\n\n\n所以我继续尝试在“ Java正则表达式测试器”中使用它,但它要么与文本不匹配,要么存在语法错误。\n我知道我必须转义某些字符,但我只是没有让它工作,这是我尝试过的:
\n\n(?<=(<Anhang>))(\\\\w|\\\\d|\\\\n|[().,\\-:;@#$%^&*\\[\\\\]\\"\'+\xe2\x80\x93/"/\xc2\xae\xc2\xb0\xe2\x81\xb0!?{}|`~]| )+?(?=(<\\"Anhang>))\n\n(?<=(<Anhang>))(\\\\w|\\\\d|\\\\n|[().,\\-:;@#$%^&*\\[\\\\]\\"\'+\xe2\x80\x93/"/\xc2\xae\xc2\xb0\xe2\x81\xb0!?\\{\\}|`~]| )+?(?=(<\\"Anhang>))\n\n(?<=(<Anhang>))(\\\\w|\\\\d|\\\\n|[().,\\\\\\\\-:;@#$%^&*\\[\\\\]\\"\'+\xe2\x80\x93/"/\xc2\xae\xc2\xb0\xe2\x81\xb0!?\\{\\}|`~]| )+?(?=(<\\"Anhang>))\nRun Code Online (Sandbox Code Playgroud)\n 我需要使用perl读取包含类似结构的许多HTML文件.
结构由STRRRR ... E组成
我想使用单行"m"perlop提取数组中的所有R.
我正在寻找这样的东西:
@all_Rs = $ htmlfile = ~m {ST(R)*E} gs;
但它从来没有成功过.
到目前为止,我一直在努力做到这一点,比如使用删除不需要的文本,循环等.我想从这个页面中提取所有行:http://www.trainenquiry.com/StaticContent/Railway_Amnities/Enquiry%20 - %20North/STATIONS.aspx 并且有很多这样的页面.
例如,我有这种内容
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
<div id="t1" class="tt" tag='t2"><div class="t3">tee</div><a href='#'>test</a><span>test</span><div>asdf</div></div>
Run Code Online (Sandbox Code Playgroud)
我试图使用preg_match来获取父div之间的内容,所以这里父div意味着<div id="t1".我使用preg_match还是有其他方法来获取这些div之间的数据?