正则表达式学习笔记(一)──转义、替换、匹配
前言最近项目用到正则表达式比较多,领会了正则表达式的强大,可以拿来做很多事情。以前只知道拿它去判断一个字符串是否符合一个模式,或者拿来在文本中查找字符串。其实,还可以用它编辑处理文本。事实上,查找依托于匹配,编辑依托于查找,根基还是匹配。 转义正则表达式有独特的语法,有元字符。比如 问题来了,如果我们这样定义 在Python里面可以这么定义 替换文本一——用固定文本替换项目中有个需求,要把 将 //java
String patternString = "{d+}";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(resultString);
resultString = matcher.replaceAll(".*");
//python
import re
pattern = re.sub('''{d+}''','''.*''',string)
替换文本二——用不固定文本替换在项目中,正则表达式是要自动生成的。比如要把 你可以用n个replaceAll去实现,而使用正则表达式则就优雅的多。 //java
public static void main(String... args) {
String input = "You should modify visibility of class or methods using getDeclaredConstructors(),getDeclaredConstructor(Class[]),setAccessible() or PrivilegedAction.";
Pattern p = Pattern.compile("(|)|[|]|.");
Matcher m = p.matcher(input);
StringBuffer sb = new StringBuffer();
while (m.find()) {
String rep = "" + m.group(0);
m.appendReplacement(sb,rep);
}
m.appendTail(sb);
System.out.println(sb);
}
//You should modify visibility of class or methods using getDeclaredConstructors(),getDeclaredConstructor(Class[]),setAccessible() or PrivilegedAction.
//python
import re
pattern = re.sub('''[[].]''',lambda m: '''%s''' % m.group(0),input)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |