用正则表达式替换 Java 中除 Unicode 字母以外的任何内容

知乎

我的文本文件采用以下格式,具有不同类型的字符串,例如:

candle
(air-paraffin)
1,000
°c
(1,800
°f)
smoldering
cigarette:
temperature
13%,
wildlife.[14]
johnston,
f.
h.;
keeley,
j.
bibcode:2009sci...324..481b
(http://adsabs.harvard.edu/abs/2009sci...3

我想删除除以下简单单词以外的所有内容。

smoldering
temperature

也就是说,如果一个词后跟一个逗号(例如闷烧,),我会删除它。

我试图从一开始就删除数字,MyString.replaceAll("^\\d", " ")但即使这样也行不通。

安德烈亚斯

如果将整个文件加载到内存中,并带有换行符,则可以使用这样的正则表达式:

text = text.replaceAll("(?m)^.*[^a-zA-Z\r\n].*(?:\R|$)", "")

输出

candle
smoldering
temperature

有关演示,请参阅regex101

但是,最好在加载文本文件时进行过滤:

Pattern simpleWord = Pattern.compile("\\p{L}+"); // one or more Unicode letters
try (BufferedReader in = Files.newBufferedReader(Paths.get("path/to/file.txt"))) {
    for (String line; (line = in.readLine()) != null; ) {
        if (simpleWord.matcher(line).matches()) {
            // found simple word
        }
    }
}

如果您想要列表中的简单单词,您可以使用 Java 8 流简化它:

List<String> simpleWords;
try (Stream<String> lines = Files.lines(Paths.get("path/to/file.txt"))) {
    simpleWords = lines.filter(Pattern.compile("^\\p{L}+$").asPredicate())
                       .collect(Collectors.toList());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 中的正则表达式,匹配除字母以外的任何内容

来自分类Dev

用R中的列表替换除特定正则表达式以外的所有内容

来自分类Dev

正则表达式接受除字母、数字以外的任何内容

来自分类Dev

在Java正则表达式中处理Unicode符号

来自分类Dev

正则表达式使用JavaScript用增量字母替换数字以外的任何内容

来自分类Dev

Java正则表达式,除字母字符/字符串外的所有内容

来自分类Dev

用Java中的正则表达式替换字符串中的空格

来自分类Dev

Java正则表达式用点替换CSS类字符串中的空格

来自分类Dev

Java正则表达式用点替换CSS类字符串中的空格

来自分类Dev

Java:替换匹配正则表达式中的字符

来自分类Dev

正则表达式测试Unicode中的大写字母

来自分类Dev

如何匹配正则表达式中的所有unicode字母字符和空格?

来自分类Dev

正则表达式替换除特定模式以外的所有内容

来自分类Dev

JavaScript正则表达式匹配除字母以外的所有内容

来自分类Dev

Java中的正则表达式与文本文件中的任何内容均不匹配

来自分类Dev

正则表达式的引号与Java中的任何内容都不匹配

来自分类Dev

用Java中的正则表达式拆分

来自分类Dev

用正则表达式匹配除1以外的任何数字

来自分类Dev

用正则表达式匹配除1以外的任何数字

来自分类Dev

正则表达式可以匹配除两个单词以外的任何内容

来自分类Dev

正则表达式匹配除结尾字符串以外的任何内容

来自分类Dev

正则表达式可匹配除某些特定字符串以外的任何内容

来自分类Dev

如何用正则表达式接受除特定单词以外的任何内容

来自分类Dev

Python正则表达式,删除除Unicode字符串的连字符以外的所有标点符号

来自分类Dev

javascript正则表达式中的Unicode字符类的替换

来自分类Dev

在多个文件中查找并替换正则表达式(匹配Unicode字符类Devanagari)

来自分类Dev

除“]]”字符外的任何内容的正则表达式

来自分类Dev

具有特定开头的正则表达式 java,然后是除某些字符之外的任何内容

来自分类Dev

Java正则表达式,用于删除除模式以外的所有字符

Related 相关文章

  1. 1

    SQL Server 中的正则表达式,匹配除字母以外的任何内容

  2. 2

    用R中的列表替换除特定正则表达式以外的所有内容

  3. 3

    正则表达式接受除字母、数字以外的任何内容

  4. 4

    在Java正则表达式中处理Unicode符号

  5. 5

    正则表达式使用JavaScript用增量字母替换数字以外的任何内容

  6. 6

    Java正则表达式,除字母字符/字符串外的所有内容

  7. 7

    用Java中的正则表达式替换字符串中的空格

  8. 8

    Java正则表达式用点替换CSS类字符串中的空格

  9. 9

    Java正则表达式用点替换CSS类字符串中的空格

  10. 10

    Java:替换匹配正则表达式中的字符

  11. 11

    正则表达式测试Unicode中的大写字母

  12. 12

    如何匹配正则表达式中的所有unicode字母字符和空格?

  13. 13

    正则表达式替换除特定模式以外的所有内容

  14. 14

    JavaScript正则表达式匹配除字母以外的所有内容

  15. 15

    Java中的正则表达式与文本文件中的任何内容均不匹配

  16. 16

    正则表达式的引号与Java中的任何内容都不匹配

  17. 17

    用Java中的正则表达式拆分

  18. 18

    用正则表达式匹配除1以外的任何数字

  19. 19

    用正则表达式匹配除1以外的任何数字

  20. 20

    正则表达式可以匹配除两个单词以外的任何内容

  21. 21

    正则表达式匹配除结尾字符串以外的任何内容

  22. 22

    正则表达式可匹配除某些特定字符串以外的任何内容

  23. 23

    如何用正则表达式接受除特定单词以外的任何内容

  24. 24

    Python正则表达式,删除除Unicode字符串的连字符以外的所有标点符号

  25. 25

    javascript正则表达式中的Unicode字符类的替换

  26. 26

    在多个文件中查找并替换正则表达式(匹配Unicode字符类Devanagari)

  27. 27

    除“]]”字符外的任何内容的正则表达式

  28. 28

    具有特定开头的正则表达式 java,然后是除某些字符之外的任何内容

  29. 29

    Java正则表达式,用于删除除模式以外的所有字符

热门标签

归档