regex - 我会通过正则表达式 javascript 从给定字符串中选择所有子字符串以“CREATE TABLE”开头并以“;”结尾
问题描述
我会选择从'CREATE TABLE'到';'的所有子字符串 在下面的字符串中。在这个字符串中应该有 2 个匹配项。
CREATE TABLE `u3g8_student` (
`student_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`roll_number` varchar(15) NOT NULL,
`
) ENGINE=InnoDB AUTO_INCREMENT=1087 DEFAULT CHARSET=utf8;
1.此行不应该匹配
CREATE TABLE `u3g8_student` (
`student_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`roll_number` varchar(15) NOT NULL,
`
) ENGINE=InnoDB AUTO_INCREMENT=1087 DEFAULT CHARSET=utf8;
https://regex101.com/r/DWWkzy/4
试过这个
CREATE.*;$
解决方案
希望这可能适用于gs
模式:
\bCREATE\b[^;]*;
如果我们没有嵌套查询;
或其他附加;
s。
测试
const regex = /\bCREATE\b[^;]*;/sg;
const str = `i would ilke to select all substrings from 'CREATE TABLE' to ';' in below string. In this string there should be 2 matches.
CREATE TABLE \`u3g8_student\` (
\`student_id\` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
\`roll_number\` varchar(15) NOT NULL,
\`
) ENGINE=InnoDB AUTO_INCREMENT=1087 DEFAULT CHARSET=utf8;
1.this line should not be matched
CREATE TABLE \`u3g8_student\` (
\`student_id\` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
\`roll_number\` varchar(15) NOT NULL,
\`
) ENGINE=InnoDB AUTO_INCREMENT=1087 DEFAULT CHARSET=utf8;`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。
正则表达式电路
jex.im可视化正则表达式:
推荐阅读
- serialization - avro-rs 解释 `uuid` 给出 SerdeError
- java - 致命异常:java.lang.IndexOutOfBoundsException setSpan (4 ... 4) Android Studio
- flutter - 如何在 Flutter/Dart 中测试多个列表项的顺序?
- python - 在提交到带有详细信息的谢谢页面后尝试保存 django 表单数据
- html - 如何翻译日期对象 - Angular 9、TypeScript、HTML
- system-verilog - modelsim 中的 -svinputport 选项
- jooq - 使用 Jooq 作为 SQL Builder
- genexus - GeneXus 16 .NET U10 - 导入 OpenAPI - 支持 OpenAPI 3.0.0?
- nuxt.js - 如何检查应用程序的 Nuxt.js 版本?
- windows - 在 Windows 中禁用文件协议