java - java - 如何在java中将字符串x.*y拆分为x和y?
问题描述
我有一个字符串x.*y
,它应该被拆分为x
and y
。
那么,该怎么做呢?
x.*y => [x,y]
注意:我需要将 x,y 分成 2 个不同的字符串。
解决方案
代码片段是:
String[] splitString = "x.*y".split("\\.\\*");
System.out.println(Arrays.toString(splitString));
此片段的输出是:
[x, y]
的split
方法String
将正则表达式作为参数。由于.
和*
在正则表达式中有特殊含义,我们需要用反斜杠转义每个,\
. 并且由于\
在 Java 字符串文字中具有特殊含义,因此每次都必须使用\
, make 对其进行转义。\\
编辑:由于所有的转义使正则表达式读起来很痛苦,我实际上推荐这个变体:
String[] splitString = "x.*y".split(Pattern.quote(".*"));
结果是一样的。该quote
方法返回一个与参数字面匹配的正则表达式。在这种情况下\Q.*\E
返回,其中\Q
和\E
表示文字引用的开始和结束。
推荐阅读
- javascript - 如何使用sequelize在Mysql中实现搜索部分案例INSENSITIVE?
- sql - Left Join 正在从 MySQL 5.7 中的查询中过滤行,而 where 子句中没有任何左连接列
- npm - Webpack 报告错误的版本号...?
- json - 如何在 Laravel 8 上将选定的复选框 ID 存储到我的数据库中
- node.js - node.js 中的路由配置
- r - facet_wrap (2D) 每行的标签只有一次?
- ruby-on-rails - Rspec如何测试Sidekiq工作?
- vue.js - 如何从 Nuxt 商店导航到错误页面
- python - 用户目录删除器
- swift - 为什么我在带有物理的 SKSpriteNode 上得到一个奇怪的“橡皮筋”反应?