0

示例输入文本:

一)owner.table_name
二)table_name

  1. 有人可以建议正则表达式,以便我以这样一种方式将文本输出到“。” (如果“.”存在)并且如果“.” 不存在然后返回空

    输出:

    一个)owner

    b) 空的

  2. 正则表达式,这样我就可以从“。”中获取文本。直到结束(如果“.”存在)并且如果“.” 不存在则返回整个字符串

    输出:

    一个)table_name

    b)table_name

4

2 回答 2

2

以下正则表达式应该可以工作:

(?:(\w+)\.)?(\w+)

它创建了两个捕获组(请参阅此调试表达式示例以使用它)第一个组将为空,输入为table_name. 对于owner.table_name这两个组都有适当的值。

于 2013-05-01T20:57:33.427 回答
1

这是一个可以同时匹配两者的正则表达式:

((?<owner>\w+)\.)?(?<table>\w+)

如果您使用的工具允许命名组,则第一个组将称为“所有者”,并且是句点之前的任何单词。第二组将被称为“table”,是可能的“owner”之后的任何单词。

于 2013-05-01T20:48:52.167 回答