我想通过分号行尾分割以下 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/