一个简单的正则表达式

有个疑问,望明白的告知,我有几组不同的数字,需要在数字后面批量加上@126.com,请问用正则表达式那个代码?
比如:123 321 1235 5213 ...
等这几组数字,我想在他们的后面加上@126.com 也就是变成了:
[email protected] [email protected] [email protected] [email protected]
以此类推,请求代码~~~ 万分感谢!
我用的工具是:UltraEdit32 ,谢谢

第一种//用java se5新增的Scanner类
import java.util.Scanner;

public class ScannerDelimiter {
public static void main(String[] args){
Scanner scanner = new Scanner("123 321 1235 5213");
scanner.useDelimiter("\\s");
while(scanner.hasNextInt()){
System.out.println(scanner.nextInt() + "@126.com");
}
}

}
第二种//用正则表达式和Scanner匹配
import java.util.Scanner;
import java.util.regex.MatchResult;

public class Test {
static String data = "123 321 1235 5213 ";
public static void main(String[] args) {
Scanner scanner = new Scanner(data);
String pattern = "([0-9]+)";
while(scanner.hasNext(pattern)){
scanner.next(pattern);
MatchResult match = scanner.match();
String number = match.group(1);
System.out.println(number + "@126.com");
}
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
第三种//直接用正则表达式
public class Test {
static String data = "123 321 1235 5213 ";
public static void main(String[] args) {
Matcher m = Pattern.compile("[0-9]+").matcher(data);
while(m.find()) {
System.out.println(m.group() + "@126.com");
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-28
不知你用的是什么语言或工具:

Perl 格式:

s/(\d+)/\1\@126.com/

JS 格式:

text.replace(/(\d+)/,"[email protected]");

工具Replace Pioneer:

1. ctrl-o打开文件,ctrl-h打开replace窗口
2. 在Search for pattern输入(\d+),在Replace with Pattern输入\1\@126.com
3. 点击Replace完成,按ctrl-s存盘。

************************
补充回答:

工具Ultra Edit:

UE的正则支持三种语法:UltraEdit, Unix 和 Perl.

但是缺省的UltraEdit语法支持不了复杂的表达式。需要在Advanced->Configuration(高级->配置)菜单,选择Search(搜索),然后选择Perl语法。

做完以上设置后,在替换的时候把(\d+)替换成[email protected]就可以了,注意还要选中“正则表达式”选项。
相似回答