Sql 如何在列中查找带有英文字符的名称?
我将解释发生了什么: 我有一个带有列的城市表:Sql 如何在列中查找带有英文字符的名称?,sql,oracle,Sql,Oracle,我将解释发生了什么: 我有一个带有列的城市表: 身份证 NAME_UA-乌克兰名称 NAME_RU-俄语名称 名称\u EN-英文名称 我有一个问题,在像敖德萨这样的一些城市,NAME\u RU=Odesa当它必须是NAME\u RU=öаСа时。 所以要解决这个问题,我首先需要找到所有的拉丁语,英语。。。名言 我有一个解决方案,但现在不起作用: SELECT * FROM CITY "c" WHERE REGEXP_LIKE("c".NAME_RU,'[^A-Za-z0-9]') ; 有什么
SELECT * FROM CITY "c"
WHERE REGEXP_LIKE("c".NAME_RU,'[^A-Za-z0-9]') ;
有什么解决办法吗?您的正则表达式要求查找1个不是字母或数字的字符。插入符号正在否定它 因此,如果要查找所有只包含英文字母和数字的
NAME_RU
,可以使用以下正则表达式:
^[A-Za-z0-9]+$
^
表示这是字符串的起点
[A-Za-z0-9]
定义允许的字符(但仅匹配单个字符)
+
表示尽可能多地匹配允许的字符(从1开始-表示空字符串不匹配。如果您也想匹配空字符串,可以使用*
而不是+
$
表示这是字符串的结束点。因此,字符串中只存在允许的字符。您的正则表达式要求查找1个不是字母或数字的字符。插入符号将其取反
因此,如果要查找所有只包含英文字母和数字的NAME_RU
,可以使用以下正则表达式:
^[A-Za-z0-9]+$
^
表示这是字符串的起点
[A-Za-z0-9]
定义允许的字符(但仅匹配单个字符)
+
表示尽可能多地匹配允许的字符(从1开始-表示空字符串不匹配。如果您也想匹配空字符串,可以使用*
而不是+
$
表示这是字符串的结束点。因此,字符串中只存在允许的字符。不确定您在此处尝试执行什么操作,或者您在查找哪些结果。请参阅不确定您在此处尝试执行什么操作,或者您在查找哪些结果。请参阅@GermanVaranytsya…这就是问题所要求的。这是一个dbfiddle:.@GermanVaranytsya…这就是问题的答案。这是一个dbfiddle:。