JAVA正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA正则表达式相关的知识,希望对你有一定的参考价值。

"status":"1","info":"OK","infocode":"10000","count":"1","geocodes":["formatted_address":"浙江省杭州市萧山区中栋国际","province":"浙江省","citycode":"0571","city":"杭州市","district":"萧山区","township":[],"neighborhood":"name":
[],"type":[],"building":"name":[],"type":[],"adcode":"330109","street":[],"number":[],"location":"120.235882,30.195335","level":"兴趣点"]

我想提取120.235882,30.195335这一串字符,不分开的话,正则表达式该怎么写

参考技术A

这个确实是json了,如果数据规整是json的话是不建议用正则去提取的, 如果是java后端要处理数据的话不妨引个json-lib去解析, 如果是前端用js的JSON.parse()也是可以的.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * by sleest 2016/07/28 
 * java正则提取
 */
public class Answer 
    public static void main(String[] args) 
        Pattern locPattern = Pattern.compile("\\"location\\":\\"(.*?)\\"");
        String yourString =
                "\\"status\\":\\"1\\",\\"info\\":\\"OK\\",\\"infocode\\":\\"10000\\",\\"count\\":\\"1\\",\\"geocodes\\":[\\"formatted_address\\":\\"浙江省杭州市萧山区中栋国际\\",\\"province\\":\\"浙江省\\",\\"citycode\\":\\"0571\\",\\"city\\":\\"杭州市\\",\\"district\\":\\"萧山区\\",\\"township\\":[],\\"neighborhood\\":\\"name\\":[],\\"type\\":[],\\"building\\":\\"name\\":[],\\"type\\":[],\\"adcode\\":\\"330109\\",\\"street\\":[],\\"number\\":[],\\"location\\":\\"120.235882,30.195335\\",\\"level\\":\\"兴趣点\\"]";

        Matcher locMatcher = locPattern.matcher(yourString);
        while (locMatcher.find()) 
            System.out.println(locMatcher.group(1));
        
    

来自:求助得到的回答
参考技术A 确定是正则表达式吗,这是个json文件吧,取这个点一下location就行吧

java正则表达式怎么书写?

要求字符串只能包含数字、英文大小写、以及“-”符号。

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

下面介绍具体的方法。

1、步骤一  : 新建一个工程和类

我们在这个类中开发相关的代码,先看看 java.util.regex 这个包吧。

2、步骤二 : 类 Pattern 的使用

类Pattern , 其一个对象就代表一种指定的正则表达式,我们通过这个类和一些正则表达式的规则来生成自己想要的字符串匹配规则!

这个类,你无法通过 new 来创建对象,其提供了一个静态方法 compile("正则规则串")来创建对象, 比如我们想要一个以 "java" 开头的字符串匹配规则,我们会用如下代码 Pattern 对象 : 

Pattern pattern = Pattern.compile("^java");

注意 : ^ 这个符号是正则表达式中的规则,表示字符串的开头!关于其他规则,我们后面会有相关经验给大家逐一介绍!

3、步骤三 : 类 Matcher 的使用

类 Matcher, 代表一个串在特定Pattern对象下的匹配结果,我们通过这个结果可以知道这个串是否符合我们的要求 (我们的具体要求在 Pattern 对象中体现!)。使用方法为 : 

// 先构建一个特定的 Pattern 对象
Pattern pattern = Pattern.compile("^java"); 
// 调用 Pattern 对象的 matcher 方法,传入一个串,得到匹配结果!
Matcher matcher = javaPrefixPattern.matcher("一个字符串");

4、步骤四 : 测试和总结

运行代码,查看程序运行效果!正则表达式的整个使用框架就是这样,其不同的应用场景基本就是不同的匹配规则!

总结 :正则表达式的彪悍,主要在于其很多成熟的规范的语义规则,通过这些规则的灵活使用,我们可以把一种复杂的匹配需求用一个规则串表达出来!

参考技术A Java 正则表达式和 Perl 的是最为相似的,正则表达式就是规则表达式。
Java中正则表达式与之前使用的Python是有区别的,区别在于Java对于反斜线(\)处理的不同。 在Python中”\d”表示 匹配一位数字(0-9),而Java中匹配一位数字(0-9),需要的正则表达式为”\\d”。 不过换行符和制表符只需要单反斜线“\n\t”。

正则表达式定义了字符串的模式。可以用来搜索、编辑或处理文本。不仅限于某一种语言,但是在每种语言中有细微的差别。
参考技术B ^[0-9a-zA-Z\\-]+$ 参考技术C

java常用简单正则表达式写法

邮箱的判断

1  /**2      * 判断email是否合法3      */4     public static boolean checkLoginEmail(String loginStr) 5         String regEx = "^([a-z0-9_A-Z]+[-|\\\\.]?)+[a-z0-9_A-Z]@([a-z0-9_A-Z]+(-[a-z0-9_A-Z]+)?\\\\.)+[a-zA-Z_]2,$";6         Pattern p = Pattern.compile(regEx);7         Matcher m = p.matcher(loginStr);8         return m.matches();// boolean9    

简单格式

public static boolean isKaChao(String kachao)
Pattern p = Pattern.compile("^(0)53[0-9]4$");
Matcher m = p.matcher(kachao);
return m.matches();

以上是关于JAVA正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

java 正则表达式

java编程基础 正则表达式

java匹配url的正则表达式

java正则表达式怎么书写?

java 正则表达式 ^java 是啥意思

JAVA正则表达式代码