Products
GG网络技术分享 2025-03-18 16:14 0
请问正则表达式是什么
a标签开始的匹配表达式:
a标签结束的匹配表达式:
匹配成功后,直接replace成空串
String str = \\\"one <a href=\\\\\"u.php?action=show&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>\\\"
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);
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。
.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。
下表列出了一些正则表达式的实例及描述:
正则表达式 | 描述 |
---|
Java 正则表达式和 Perl 的是最为相似的。
java.util.regex 包主要包括以下三个类:
以下实例中使用了正则表达式 .*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))),有四个这样的组:
可以通过调用 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