我需要从字符串中替换空格而不是最后一次出现。我尝试了一些正则表达式,但没有找到解决方案。
我的字符串类似'ABCD;140 0 0 EUR;350 0 0 0 EUR'
,我需要将其设为ABCD;14000 EUR;350000 EUR'
我尝试了以下方式
select regexp_replace('ABCD;14000 EUR;350 0 0 0 EUR', '\s[^EUR]', '','g');
ABCD;14000 EUR;350 EUR
select regexp_replace('ABCD;14000 EUR;350 0 0 0 EUR', '\s', '', 'g');
ABCD;14000EUR;350000EUR
任何建议或帮助?
-Neelesh
答案 0 :(得分:1)
看来你想删除所有未跟随<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="width:100%">
<tr class="click">
<th>Click</th>
<th>Click</th>
<th class="noclick">Nothing should happen here</th>
</tr>
</table>
的空白字符(或任何由3个大写字母组成的单词)作为整个单词(货币缩写)。
使用
EUR
请参阅online demo。
<强>详情
select regexp_replace('ABCD;140050 EUR;350000 EUR', '\s+(?![[:upper:]]{3}\y)', '\1','g');
- 一个或多个空格...... \s+
- 没有立即跟随3个大写字母,后面没有单词char((?![[:upper:]]{3}\y)
是单词边界,\y
在这里是等价的,因为它匹配单词的结尾位置)。请注意,\M
将删除(?![[:upper:]]{3}\y)
之前的所有空格。如果您想在EUR
之前保留所有空白字符,请使用EUR
模式。
答案 1 :(得分:0)
您可以替换以下数字中的所有空格:
select regexp_replace('ABCD;14000 EUR;350 0 0 0 EUR', '\s+(\d)', '\1','g');
结果:
ABCD;14000 EUR;350000 EUR
'\s+(\d)'
匹配后跟数字的所有空格,'\1'
是找到的数字。