正则表达式条件验证

时间:2013-05-01 20:19:33

标签: regex

示例输入文字:

a)owner.table_name
b)table_name

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

    输出:

    a)owner

    b)空

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

    输出:

    a)table_name

    b)table_name

2 个答案:

答案 0 :(得分:2)

以下正则表达式应该有效:

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

它会创建两个捕获组(请参阅this debuggex example来玩它) 第一组将为空,输入为table_name。对于owner.table_name,两个组都有适当的值。

答案 1 :(得分:1)

这是一个匹配两者的正则表达式:

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

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