注意:我的程序运行正常,我只是在寻找原因的解释。
我有一个 java 程序,它读取一个文件,计算文件中的字数,然后将字数和计数输出到另一个文件。在我的第一部分中,我使用正则表达式来替换任何不是字母的字符,并将其替换为空字符串。
freq.add(in.next().replaceAll("[^A-Za-z]", ""));
然而,这并没有考虑带连字符的单词,所以我将正则表达式更改为:
freq.add(in.next().replaceAll("[^A-Za-z_-]", ""));
我的问题是,为什么添加下划线和连字符有效?下划线字符背后的含义是什么?
当我提问时,所有语言的正则表达式都一样吗?
此外,如果在其他地方回答了这个问题,我深表歉意,我进行了多次搜索但没有成功。
最佳答案
正则表达式中的下划线没有什么特别的,它只是像 A 这样的普通字符。字符类末尾的连字符也不是特别的,尽管它位于其他两个字符之间,正如您所例如,通过说 A-Z,用它来匹配所有字母。
正则表达式在大多数语言之间相似,但一些更深奥的功能可能与语言不同或缺失。
关于java - 正则表达式中下划线字符的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773866/