Java 使用 RegexOption.MULTILINE 分割字符串

标签 java

我想通过分号行尾分割以下 Sql 语句:

CREATE TABLE projects(
   id INTEGER PRIMARY KEY AUTOINCREMENT     NOT NULL,
   name           TEXT    NOT NULL,
   created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX ix_tasks_project_id ON tasks (project_id);

SELECT * FROM projects WHERE name = "someName;WithSemiColon";

类似于: string.split(";$");(但应用了RegexOption.MULTILINE)

有人可以解释一下如何应用 RegexOption 吗?

最佳答案

只需在正则表达式前添加 (?m) 即可启用标志 MULTILINE所以在你的情况下它将是 (?m);$

for (String s : string.split("(?m);$")) {
    System.out.printf("----> %s%n", s.trim());
}

输出:

----> CREATE TABLE projects(
   id INTEGER PRIMARY KEY AUTOINCREMENT     NOT NULL,
   name           TEXT    NOT NULL,
   created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
)
----> CREATE INDEX ix_tasks_project_id ON tasks (project_id)
----> SELECT * FROM projects WHERE name = "someName;WithSemiColon"

关于Java 使用 RegexOption.MULTILINE 分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41696925/

相关文章:

java接口(interface)和子类

java - 在字符串中的特殊字符之间搜索子字符串

java - JBoss7 + PostgreSQL 新的缺失/未满足的依赖关系

java - OS X 10.7 中不存在新文件

java - 如何将 PDFBox.jar 集成到 Android 项目中?

用于国际化的 Java 和 GNU gettext

java - 从 UI JavaFX 监听后台线程

java - 空指针异常 Jcreator,Java

java - 无法运行 "Hello World"Elastic-Search Java 客户端

java - 当收到来自服务器的消息时,如何在 Android 客户端上启动新的 Activity