我有一个如下字符串:
CREATE GLOBAL TEMPORARY TABLE some_temp_table_name
或
CREATE GLOBAL TEMPORARY TABLE some_temp_table_name something else
使用正则表达式我想删除任何粗体字母。
我有以下正则表达式
([a-z].*[\s]*)
我应该在正则表达式中改变什么?
答案 0 :(得分:1)
试试这个:
([A-Z\s]+)[a-z_]+\s?([a-z\s]+)
在Groovy中你会做这样的事情:
String clean
= yourString.replaceAll("([A-Z\s]+)[a-z_]+\s?([a-z\s]+)", "$1$2");
答案 1 :(得分:1)
根据您提供的2个案例,以下内容适用于Groovy:
def s1 = "CREATE GLOBAL TEMPORARY TABLE some_temp_table_name"
def s2 = "CREATE GLOBAL TEMPORARY TABLE some_temp_table_name something else"
def t1 = s1 =~ /CREATE GLOBAL TEMPORARY TABLE (\w+)/
def t2 = s2 =~ /CREATE GLOBAL TEMPORARY TABLE (\w+)/
assert "some_temp_table_name" == t1[0][1]
assert "some_temp_table_name" == t2[0][1]
答案 2 :(得分:0)
尝试? :
([a-zA-Z\s]+TABLE)\s\b[a-zA-Z_]+\b(.*)
答案 3 :(得分:0)
如果我的目标是提取小写部分,我会在ruby中执行以下操作:
'CREATE GLOBAL TEMPORARY TABLE some_temp_table_name '.gsub(/[A-Z]/,'').gsub(/[\s]{2,}/, ' ').strip