регулярное выражение, чтобы найти слово в предложении - PullRequest
0 голосов
/ 01 сентября 2009

У меня есть строка вроде:

CREATE GLOBAL TEMPORARY TABLE <strong>some_temp_table_name</strong>

или

CREATE GLOBAL TEMPORARY TABLE <strong>some_temp_table_name</strong> something else

с помощью регулярного выражения, которое я хочу выделить жирным шрифтом.

У меня есть следующее регулярное выражение

([a-z].*[\s]*)

что я должен изменить в регулярном выражении?

Ответы [ 4 ]

1 голос
/ 01 сентября 2009

На основании 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]
1 голос
/ 01 сентября 2009

Попробуйте это:

([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");
0 голосов
/ 01 сентября 2009

Если бы моей целью было извлечь строчные буквы, я бы сделал следующее в ruby:

'CREATE GLOBAL TEMPORARY TABLE some_temp_table_name '.gsub(/[A-Z]/,'').gsub(/[\s]{2,}/, ' ').strip
0 голосов
/ 01 сентября 2009

попробовать? :

([a-zA-Z\s]+TABLE)\s\b[a-zA-Z_]+\b(.*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...