精华内容
下载资源
问答
  • I'm trying to write a regular expression in Java which removes all non-alphanumeric characters from a paragraph, except the spaces between the words.This is the code I've written:paragraphInformation ...

    I'm trying to write a regular expression in Java which removes all non-alphanumeric characters from a paragraph, except the spaces between the words.

    This is the code I've written:

    paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\s]", "");

    However, the compiler gave me an error message pointing to the s saying it's an illegal escape character. The program compiled OK before I added the \s to the end of the regular expression, but the problem with that was that the spaces between words in the paragraph were stripped out.

    How can I fix this error?

    解决方案

    You need to double-escape the \ character: "[^a-zA-Z0-9\\s]"

    Java will interpret \s as a Java String escape character, which is indeed an invalid Java escape. By writing \\, you escape the \ character, essentially sending a single \ character to the regex. This \ then becomes part of the regex escape character \s.

    展开全文
  • java"] package com.test; import java.util.regex.Pattern; public class StringUtils { /**匹配&或全角状态字符或标点*/ public static final String PATTERN="&|[\uFE30-\uFFA0]...

    package com.test;

    import java.util.regex.Pattern;

    public class StringUtils {

    /**匹配&或全角状态字符或标点*/
    public static final String PATTERN="&|[\uFE30-\uFFA0]|‘’|“”";

    public static String replaceSpecialtyStr(String str,String pattern,String replace){
    if(isBlankOrNull(pattern))
    pattern="\\s*|\t|\r|\n";//去除字符串中空格、换行、制表
    if(isBlankOrNull(replace))
    replace="";
    return Pattern.compile(pattern).matcher(str).replaceAll(replace);

    }
    public static boolean isBlankOrNull(String str){
    if(null==str)return true;
    //return str.length()==0?true:false;
    return str.length()==0;
    }

    /**清除数字和空格*/
    public static String cleanBlankOrDigit(String str){
    if(isBlankOrNull(str))return "null";
    return Pattern.compile("\\d|\\s").matcher(str).replaceAll("");
    }


    /**
    * Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。

    /pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。

    大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。\\pP‘’“”]",如果在 JDK 5 或以下的环境中,全角单引号对、双引号对

    其他六个是
    L:字母;
    M:标记符号(一般不会单独出现);
    Z:分隔符(比如空格、换行等);
    S:符号(比如数学符号、货币符号等);
    N:数字(比如阿拉伯数字、罗马数字等);
    C:其他字符
    *
    * */
    public static void main(String[] args){

    System.out.println(replaceSpecialtyStr("中国电信2011年第一批IT设备集中采购-存储备份&(),)(UNIX服务器",PATTERN , ""));

    }
    }



    摘抄:
    str = str.replaceAll("[\\pP‘’“”]", "");


    Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。

    \pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。

    大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。

    其他六个是

    L:字母;
    M:标记符号(一般不会单独出现);
    Z:分隔符(比如空格、换行等);
    S:符号(比如数学符号、货币符号等);
    N:数字(比如阿拉伯数字、罗马数字等);
    C:其他字符

    上面这七个是属性,七个属性下还有若干个子属性,用于更进一步地进行细分。

    Java 中用于 Unicode 的正则表达式数据都是由 Unicode 组织提供的。

    Unicode 正则表达式标准(可以找到所有的子属性)
    http://www.unicode.org/reports/tr18/

    各 Unicode 字符属性的定义,可以用一看看某个字符具有什么属性。
    http://www.unicode.org/Public/UNIDATA/UnicodeData.txt

    这个文本文档一行是一个字符,第一列是 Unicode 编码,第二列是字符名,第三列是 Unicode 属性,
    以及其他一些字符信息。
    展开全文
  • 正则表达式 查找数字 数字相关的常用语法: \d 数字字符匹配。等效于 [0-9]。 \D 非数字字符匹配。等效于 [^0-9]。 [xyz] 字符集。匹配包含的任一字符。例如,"[abc]“匹配"plain"中的"a”。 [^xyz] ...

    正则表达式 查找数字

    数字相关的常用语法:

    \d数字字符匹配。等效于 [0-9]。
    \D非数字字符匹配。等效于 [^0-9]。
    [xyz]字符集。匹配包含的任一字符。例如,"[abc]“匹配"plain"中的"a”。
    [^xyz]反向字符集。匹配未包含的任何字符。例如,"[^abc]“匹配"plain"中"p”,“l”,“i”,“n”。

    find 和 matches 的区别

    find 是部分匹配,适合判断是否含有某些内容,比如字符中是否含有数字

    matches 是全匹配,适合判断是否为数字或是字母

    1,判断字符中是否有数字

    表达式可以是 \d 或是 [0-9] 可能有多个加*

     public static void main(String[] args) {
            String str2 = "1aa564sdfp5324";
            System.out.println("======= "+str2+" =========");
            hasDigit(str2);
            str2 = "234564";
            System.out.println("======= "+str2+" =========");
            hasDigit(str2);
        }
    
     public static boolean hasDigit(String content) {
            String regExp = "\\d+";
            regExp = "[0-9]*";
            Pattern pattern=Pattern.compile(regExp);
            Matcher m = pattern.matcher(content);
            System.out.println(" matches nums: " +m.matches());
            System.out.println(" find nums: " +m.find());
            return m.find();
        }
        
    

    结果:

    ======= 1aa564sdfp5324 =========
     matches nums: false
     find nums: true
    ======= 234564 =========
     matches nums: true
     find nums: true
    

    2,提取字符串中的数字

    表达式: [^0-9] 需要用到反向字符集,去掉非数字的。

    public static void main(String[] args) {
            String str = "curStaff[25].staffName12";
            getContainsNum(str);
        }
        
        private static String getContainsNum(String str){
            String regExp="[^0-9]"; // 反向字符集。匹配未包含的数字,替换着里面的数字
            Pattern pattern = Pattern.compile(regExp);
            Matcher matcher = pattern.matcher(str);
            System.out.println("find "+matcher.find());
            String nums = matcher.replaceAll("").trim();
            System.out.println("nums "+nums);
            return nums;
        }
    

    结果:

    find true
    nums 2512
    

    这个例子中会有个问题,数字是获取了,但是糅合在一起了,一般会需要分开。

    3,分开提取的数字

    替换的时候使用特殊字符进行替换,然后再进行分割,进行大小判断

    public static void main(String[] args) {
            String str = "curStaff[25].staff454Name12";
            getSplitNums(str);
        }
    
        private static String getSplitNums(String str){
            String regExp="[^0-9]"; // 反向字符集。匹配未包含的数字,替换着里面的数字
            Pattern pattern = Pattern.compile(regExp);
            Matcher matcher = pattern.matcher(str);
            List<String> strList = new ArrayList<>();
            // 用一个字符进行替换,逗号,空格或是特殊字符
            String nums = matcher.replaceAll(",").trim();
            //以逗号为分割符在讲数字存入一个字符串数组中
            String[] strArr = nums.split(",");
            System.out.println("nums "+nums);
            for (String single: strArr) {
                if(single.length() > 0){
                    strList.add(single);
                }
            }
            System.out.println("result: "+strList.toString());
            return nums;
        }
    

    总结:

    ​ 使用正则表达式的时候,主要是对“正则表达式语法”要熟悉,使用的话,没有想法的话就网上查查,理解后,再实践操作一遍。

    另外一种获取数字的方式 获取双引号里面的数字

    展开全文
  • java正则表达之空格数字

    千次阅读 2018-05-11 12:04:09
    很多时候在java切分字段或者判断文字内容的时候可以应用到正则表达式的方法1、空格文段很多时候可以应用空格做切分但是有的时候用String st = s.split(" ");会出错,因为空格属于特殊字符啊,所以String ...

    很多时候在java切分字段或者判断文字内容的时候可以应用到正则表达式的方法


    1、空格

    文段很多时候可以应用空格做切分但是有的时候用

    String st = s.split(" ");

    会出错,因为空格属于特殊字符啊,所以

    String st = s.split("\\s+"); 

    表示可以识别一个或多个空格;

    于是,就可以推断出=-=

    String st = s.split("\\s"); 

    表示可以识别到一个空格啊;


    2、数字

    对于纯数字的判断java中有

    的方法;

    在matches()中可以添加正则表达式;

    例如

    string.matches();
    string.matches("[0-9]");//判断纯数字0-9
    string.matches("[0-9]+");//利用上面与空格相类似的“+”:表示是匹配前面的子表达式一次或多次
    string.matches("-?[0-9]+.*[0-9]*");  //判断正负,整数小数

    *当然,除了正则也有很多方法可以用啦=-=

    展开全文
  • java正则表达式详解

    万次阅读 多人点赞 2019-04-02 16:35:46
    一、正则表达式术语 1)元字符 : 非一般字符,具有某种意义的字符。如 : \bX : \b边界符, 以 X开始的单词 2)正则表达式语法大全 ..."\n"匹配行符。序列"\\"匹配"\","\("匹配"("。 ...
  • java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦。 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习。 什么是正则表达式? 正则表达式定义字符串的...
  • JAVA正则表达式匹配多个空格

    万次阅读 2017-09-22 19:59:46
    解决方案利用正则表达式来匹配空格\\s+首先利用split(“\\s+”);方法来对字符串切割,尽可能的匹配空格,这里也挺有意思,因为空格数目不一样,可以动态变换匹配的空格数量,这个实现原理可以看看底层原理,挺有意思...
  • notepad++ 正则表达式 替换数字

    千次阅读 2020-12-01 14:19:33
    正则表达式 替换数字 value:\b(\d)\b value:[1-9]\d* {value:0,x:'120.25052',y:'30.215128'}, {value:1,x:'120.24949',y:'30.225956'}, {value:2,x:'120.249833',y:'30.229516'}, {value:3,x:'120.254468',y:'30...
  • java 正则表达式 数字

    千次阅读 2012-04-24 23:50:32
    首先说一下java正则表达式的重点概念:  第一、相关类:Pattern、Matcher   第二、典型的调用顺序是  Pattern p = Pattern.compile("a*b");  Matcher m = p.matcher("aaaaab");  boolean b = m....
  • Java 正则表达式

    万次阅读 多人点赞 2018-08-31 23:08:12
    前段时间使用Java正则表达式做一些字符串匹配的任务,现将学到的正则表达式的知识整理成文。 Java中Spring.class涉及到正则表达式。如Spring.split(), matches(),replaceAll()等方法。 Java中更一般使用正则...
  • Java正则表达式

    2017-07-12 13:32:14
    java正则表达式工具与总结
  • Java正则表达式之分组和替换

    万次阅读 多人点赞 2019-08-24 08:36:17
    正则表达式的分组不是很好懂,但却是很强大的文本处理工具。 1 分组替换 什么是分组,直接引用 Java Api 中 Pattern 中的描述: Capturing groups are numbered by counting their opening parentheses from ...
  • java正则表达式

    千次阅读 2016-10-10 09:26:53
    JAVA正则表达式
  • java 正则表达式去掉前后空格

    千次阅读 2010-11-03 16:04:00
    Java代码 //使用正则表达式截取空格 function trim(s) { return s.replace( /^/s*/, "" ).replace( //s*$/, "" ); } //使用正则表达式截取空格 function trim(s) { return s.replace( /^/s*/, "" )....
  • Java 正则表达式 之 替换

    千次阅读 2018-06-08 11:20:30
    public class TestReplace { public static void main(String[] args) { test4(); } /** * 4. 将下面的国家重叠的数字替换成 空格 China12345America6789...
  • Java 正则表达式 匹配sql参数和替换 目录 匹配和替换sql里面的参数 要求: 代码: 思考: 总结: 语法: \\s 匹配空格 在动态sql查询中,需要替换sql查询语句的条件 匹配和替换sql里面的参数 要求: ...
  • java 正则表达式 65个字母内只包含数字空格,+号 三种的该如何写呢
  • Java正则

    2018-11-07 10:46:17
     * 利用正则表达式判断字符串是否是数字  * @param str  * @return  */  public static boolean isNumeric(String str){  Pattern pattern = Pattern.compile("[0-9]*");  Matcher isN...
  • Java 正则表达式的用法和实例

    万次阅读 多人点赞 2019-06-11 11:17:00
    空格符,与\n、\tab相同 三、快捷符号 1、\d表示[0—9] 2、\D表示[^0—9] 3、\w表示[0—9A—Z_a—z] 4、\W表示[^0—9A—Z_a—z] 5、\s表示[\t\n\r\f] 6、\S表示[^\t\n\r\f] 四、常用的正则表达式 1、Java:(([a-z]|_...
  • //正则表达式 每两位数字加一个空格 public static String getFileAddSpace(String replace) { String regex = "(.{2})"; replace = replace.replaceAll(regex, "$1 "); return replace; } 判断是否有重复 ...
  • Java 正则表达式基础

    2021-08-17 14:22:42
    Java 正则表达式基础 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 详细请看以下示例: package com.wu; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,840
精华内容 14,736
关键字:

java正则空格换数字

java 订阅