【发布时间】:2021-07-15 20:46:50
【问题描述】:
我的字符串看起来像“New Mexico Group”或“Texas/Dallas Group”。
我怎样才能使用正则表达式,以便我只剩下“新墨西哥”和“德克萨斯”?
我目前正在使用 '/.*$' 来删除 '/' 字符之后的所有内容,但我不确定如何在相同的正则表达式语句中删除不存在的状态条目的 'Group'没有'/'
【问题讨论】:
-
您使用的规则是什么?什么数据库?
我的字符串看起来像“New Mexico Group”或“Texas/Dallas Group”。
我怎样才能使用正则表达式,以便我只剩下“新墨西哥”和“德克萨斯”?
我目前正在使用 '/.*$' 来删除 '/' 字符之后的所有内容,但我不确定如何在相同的正则表达式语句中删除不存在的状态条目的 'Group'没有'/'
【问题讨论】:
执行此操作的确切方法取决于数据库。以下使用regexp_replace() 将整个字符串替换为'/' 或' Group' 之前的部分。它使用 MySQL 语法约定:
select t.*,
regexp_replace(col, '^([^/]*)(/| Group).*$', '$1')
from (select 'New Mexico Group' as col union all select 'Texas/Dallas Group') t;
Here 是一个 dbfiddle。
【讨论】:
看看这个
>>> ex='([a-zA-Z ]+)[[/]*[a-zA-Z ]*]* Group'
>>> re.findall(ex,'New Mexico Group')
['New Mexico']
>>> re.findall(ex,'Texas/Dallas Group')
['Texas']
您可以找到有关正则表达式here 的更多信息。您可以测试并尝试任何适合您的方式。
【讨论】: