如果以下两种情况都成立,我想用,
替换.
:
,
在字符串中只能出现一次,
后应最多两位数字这些还可以:1 000 000,51
,1.000,9
这些不是:9,523,036.11
,1,000
到目前为止,我的发展情况:https://regex101.com/r/njuKtb/1
答案 0 :(得分:1)
您可以使用此正则表达式进行搜索:
^([^,]*),(?=\d{1,2}(?!\d))(?!.*,)
并使用此替换:
$1.
RegEx详细信息:
^([^,]*)
:在开头匹配0个或多个非逗号字符,
:匹配文字逗号(?=\d{1,2}(?!\d))
:匹配1或2位数字,后跟另一位数字(?!.*,)
:确保我们前面没有逗号或者将其用于搜索:
^([^,]*),(?=\d{1,2}(?!\d))([^,\n]*)$
并替换为:
$1.$2
答案 1 :(得分:0)
您可以这样做:
/^(?!^[^,\n]*,[^,\n]*,[^,\n]*)(?:[^,\n]*),(?=\d{1,2}\D*$)/m
哪个是
^ Start of string or line
(?!^[^,\n]*,[^,\n]*,[^,\n]*) Only matches lines with a single ','
(?:[^,\n]*) Suck up the LH before the ,
, The ,
(?=\d{1,2}\D*$) no more than two \d before end of the line