Java 如何将此正则表达式更改为case instate(查找src标记) regular表达式:][*>

Java 如何将此正则表达式更改为case instate(查找src标记) regular表达式:][*>,java,regex,Java,Regex,当'src'是小写的并且同时管理单引号和双引号时,这种方法可以很好地工作。 我希望此表达式返回以下测试数据的匹配项 Regualar expression: <img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*> 1。 2. 3.(src中的任何字符都可以是大写/小写) 4. 5. 创建带有不区分大小写标志的图案。看见这将影响整个字符串,也就是说img 或者用便宜的方法,将src更改为[Ss][Rr][Cc]。这只会影响src部分。看看 您必

当'src'是小写的并且同时管理单引号和双引号时,这种方法可以很好地工作。 我希望此表达式返回以下测试数据的匹配项

Regualar expression: <img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>
1。
2.
3.(src中的任何字符都可以是大写/小写)
4.
5.

创建带有不区分大小写标志的图案。看见这将影响整个字符串,也就是说
img

或者用便宜的方法,将
src
更改为
[Ss][Rr][Cc]
。这只会影响
src
部分。

看看


您必须在模式构造函数中设置大小写不敏感。

在我看来,如果您想处理HTML,最好的方法是使用真正的HTML解析器

虽然我不熟悉Java,但似乎有很多选择:


这将允许您处理一些情况,例如在src之前的其他属性包含字符'>',这是有效的HTML,或者包含引号的src属性,以及可能的一些其他不太可能但可能的骗局。

在我的脑海中:
如果您愿意,可以将
src
替换为
[S|S][R|R][C|C]
src
应用大小写不敏感


KT

您可以使用“(?i)”将表达式设置为大小写插入


[]

谢谢;只是好奇;你说的“廉价方式”是指高效/更快吗?我的意思是说这是最省力的方式。编译一次并重用。更高效/更快。:)
1. <html><img src ="kk.gif" alt="text"/></html>
2. <html><img Src ="kk.gif" alt="text"/></html>
3. <html><img sRC ="kk.gif" alt="text"/></html> (any charcter in 'src' can be uppercase/lowercase)
4. <html><img SRC ="kk.gif" alt="text"/></html>
5. <html><img src ='kk.gif' alt="text"/></html>
Regular expression: (?i)<img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>
Regular expression: <img[^>]+(?i:src)\s*=\s*['"]([^'"]+)['"][^>]*>
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);