其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

java 去掉a标签属性正则表达式

GG网络技术分享 2025-03-18 16:14 0


问题描述:

图片说明

请问正则表达式是什么

网友观点:

a标签开始的匹配表达式:
a标签结束的匹配表达式:

匹配成功后,直接replace成空串

String str = \\\"one <a href=\\\\\"u.php?action=show&amp;uid=122113\\\\\" target=\\\\\"_blank\\\\\">超链接文本</a>  two <a> adfadf </a> Three\\\";

str = url.replaceAll(\\\"</{0,1}a[\\\\W\\\\w+]{0,}?>\\\", \\\"\\\");

java不懂,不过去掉a标签直接用下面的正则就行了

//<\\/?a[^>]*>

var s=\'one <a href=xxaflajf target=xxxx>超链接文本</a> two <a>fjalfjla</a> three <b>afafa</b>\';

s=s.replace(/<\\/?a[^>]*>/gi,\'\');

alert(s)

查找
]*href[^>]*>([^<>]*)<\\/a>
替换
$1

String str = \\\"one 超链接文本 two adfadf Three\\\";
String regxp = \\\"<[^>]+>\\\";

Pattern pattern = Pattern.compile(regxp, Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(str);

String htmlStr = matcher.replaceAll(\\\"\\\");

System.out.println(htmlStr.toString());

查找
]*herf[^>]*>([^<>]*)<\\/a>
替换
$1

没有时间去编译测试,在源文件找了一份推荐给你,希望可以帮到你。。

   正则表达式:  \\\"<a((?!comment).)*?>|</a>\\\"

![图片说明](https://img-ask.csdn.net/upload/201802/28/1519807083_674716.png)

String str = \\\"one 超链接文本 two adfadf Three\\\";

    String s = str.replaceAll(\\\"<a((?!comment).)*?>|</a>\\\", \\\"\\\");

System.out.println(s);

简单一点也可以这样
String str = \\\"one (你的a标签) 超链接文本(你的a标签) two (你的a标签) adfadf (你的a标签) Three\\\";

String s = str.replaceAll(\\\"|\\\", \\\"\\\");
System.out.println(s);

Java 正则表达式

正则表达式定义了字符串的模式。

正则表达式可以用来搜索、编辑或处理文本。

正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

正则表达式实例

一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。

.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。

下表列出了一些正则表达式的实例及描述:

正则表达式描述

Java 正则表达式和 Perl 的是最为相似的。

java.util.regex 包主要包括以下三个类:

  • Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
  • Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
  • PatternSyntaxException:PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

以下实例中使用了正则表达式 .*runoob.* 用于查找字符串中是否包了 runoob 子串:

实例
import java.util.regex.*; class RegexExample1{ public static void main(String[] args){ String content = "I am noob " + "from runoob.com."; String pattern = ".*runoob.*"; boolean isMatch = Pattern.matches(pattern, content); System.out.println("字符串中是否包含了 'runoob' 子字符串? " + isMatch); } }
实例输出结果为:
字符串中是否包含了 'runoob' 子字符串? true


捕获组

捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。

例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g"。

捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)

可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。groupCount 方法返回一个 int 值,表示matcher对象当前有多个捕获组。

还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。

实例

下面的例子说明如何从一个给定的字符串中找到数字串:

RegexMatches.java 文件代码:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main( String[] args ){ // 按指定模式在字符串查找 String line = "This order was placed for QT3000! OK?"; String pattern = "(\\\\D*)(\\\\d+)(.*)"; // 创建 Pattern 对象 Pattern r = Pattern.compile(pattern); // 现在创建 matcher 对象 Matcher m = r.matcher(line); if (m.find( )) { System.out.println("Found value: " + m.group(0) ); System.out.println("Found value: " + m.group(1) ); System.out.println("Found value: " + m.group(2) ); System.out.println("Found value: " + m.group(3) ); } else { System.out.println("NO MATCH"); } } }

以上实例编译运行结果如下:

标签:

提交需求或反馈

Demand feedback