我使用的是我喜欢且较熟悉的工具的较旧版本,
  但是它没有在其create语句中创建正确的输出。
  因为这将是一项重复性的任务,所以我做了一点
  网络工具;在JaveScript中创建目标Regex。我想打破
  只需几下即可完成替换,但我认为1行正则表达式将
  让我前进,然后我可以倒退。


我想替换'BINARY(16)'之后的'('之后的第一个Batch(或任何单词)。我正在RegexBuddy中进行测试,我尝试了:\(\s\w+\s(BINARY\(\d{1,2}\)[^,)])以及许多其他操作,但是没有成功。

CREATE TABLE Batch(
    batch_id               BINARY(16)    NOT NULL,
    batch_datetime         DATETIME,
    overhead_project_id    BINARY(16)    NOT NULL,
    PRIMARY KEY (batch_id)
)ENGINE=INNODB;


使用ConvertMe.replace(/(FooStatement/gi, "INT(11) NOT NULL AUTO INCREMENT");
我的最终目标是:(我还必须在其他create语句上修复一些FLOAT和其他INT)

CREATE TABLE Batch(
    batch_id               INT(11)    NOT NULL    AUTO INCREMENT,
    batch_datetime         DATETIME,
    overhead_project_id    INT(11)    NOT NULL,
    PRIMARY KEY (batch_id)
)ENGINE=INNODB;


解决方案:ConvertMe = ConvertMe.replace(/(((((\ s | \ n | \ r)\ w \ s +)(BINARY(\ d {1,2})[^,] *)/ gi,“ $ 1INT( 11)NOT NULL AUTO INCREMENT“);

最佳答案

试试这个..我认为这是你在寻找什么

\(?[A-Za-z].+?(BINARY\([0-9]{1,2}\))

关于javascript - 正则表达式在(My)SQL create语句上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9038638/

10-11 02:54