我在博士后有下表
col1 col2 col3
NCT00000412 Drug Placebo Calcitriol
NCT00000412 Drug Placebo Alendronate
NCT00000774 Biological Placebo version of rgp120/HIV-1MN
NCT00000774 Biological Placebo version of rgp120/HIV-1SF2
NCT00005648 Drug Gemcitabine with Placebo
NCT00007631 Drug Tretinoin 0.1% cream or placebo
NCT00007735 Drug Doxycycline (200mg/day) or Placebo
NCT00032435 Drug PAL-40 Placebo
NCT00032435 Drug abciximab placebo; reteplase placebo, abciximab
NCT00032435 Drug Valsartan placebo + nateglinide placebo
我试图提取那些单词前后只有一个单词的行。预期输出为:
col1 col2 col3
NCT00000412 Drug Placebo Calcitriol
NCT00000412 Drug Placebo Alendronate
NCT00032435 Drug PAL-40 Placebo
我尝试了以下正则表达式:
select * from table
where name ~* '\splacebo\w+' or name ~* '\w+placebo\s'
3条答案
按热度按时间zbwhf8kr1#
你可以用
查看regex演示
细节
^
-字符串开头(?:placebo\s+\S+|\S+\s+placebo)
-一个非捕获组匹配placebo\s+\S+
-placebo
,然后是1+空白,然后是1+非空白|
-或者\S+\s+placebo
-1+非空格,然后1+空格,然后placebo
$
-字符串结尾。pieyvz9o2#
我想你想要:
分解:
我曾经
\S
而不是\w
因为你想匹配破折号\w
不会的)。lstz6jyr3#
请注意,您可以使用
like
: