我有一个格式如下的字符串:"SomeText ($4.56)"
我使用以下正则表达式\${1}[0-9]+\.*[0-9]*
来提取货币数据,但它包含$
符号。
我是中间人并且理解为。
\$
正在寻找美元符号[0-9]+
是\.
正在查找小数*[0-9]*
在小数点后找到零或更多位数我希望删除美元符号。我该怎么做?
提前致谢。
答案 0 :(得分:1)
这很简单......只需使用群组!
看起来像这样:
\$([0-9]+\.*[0-9]*)
第1组将返回没有$
的货币。
答案 1 :(得分:0)
你做得很好但是用正则表达式删除JS中的子字符串需要调用'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_ENGINE_SUBSTITUTION',
],
],
方法。正则表达式:
.replace()
故障:
\$(\d+(?:\.\d+)?)\b
Macth一个字面的美元符号\$
开始捕获第一组
(
匹配带有可选小数的数字序列\d+(?:\.\d+)?
捕获群组结束)
匹配字边界JS代码:
\b

答案 2 :(得分:0)
用括号括起你想要的东西来创建一个捕获组。
\$(\d+\.\d{2})
var regex = /\$(\d+\.\d{2})/;
var string = "SomeText ($4.56)";
var matches = regex.exec(string);
console.log(matches); // all matches
console.log(matches[1]); // first capture group