我想使用 Oracle 的 regexp_like 只允许以下内容:
非常感谢您的意见:)
以下是有效行
D|1005433608369|202311220039403004157|2023112200394030041570002|0|-53|4157|20231122|30|394|820|2|0|0|0|0
D|1006233842021|202311220039403004160|2023112200394030041600001|1|0|4160|20231122|30|394|868|1|46002136|98|35|0
D|1006233842021|202311220039403004160|2023112200394030041600002|0|-63|4160|20231122|30|394|820|2|0|0|0|0
D|1004420222359|202311220039403004161|2023112200394030041610001|1|0|4161|20231122|30|394|868|1|45941436|108|54|0
D|1004420222359|202311220039403004161|2023112200394030041610002|0|-54|4161|20231122|30|394|820|2|0|0|0|0
D|1005557156227|202311220039403004187|2023112200394030041870001|1|0|4187|20231122|30|394|868|1|46189226|98|2
以下为无效行
T|2401|20231124|202311240240138702117|1015453705|5|193|00 A+%?Pu?Z?3<???
您可以使用以下正则表达式模式:
^(-?[0-9]+(\.[0-9]+)?|[DT])(\|(-?[0-9]+(\.[0-9]+)?\|[DT]))*$
Oracle查询:
SELECT val
FROM yourTable
WHERE REGEXP_LIKE(val, '^(-?[0-9]+(\.[0-9]+)?|[DT])(\|(-?[0-9]+(\.[0-9]+)?|[DT]))*$');