正则表达式中间

时间:2018-05-24 16:37:06

标签: javascript regex

我有一个格式如下的字符串:"SomeText ($4.56)"

我使用以下正则表达式\${1}[0-9]+\.*[0-9]*来提取货币数据,但它包含$符号。

我是中间人并且理解为。

  • \$正在寻找美元符号
  • [0-9]+
  • 之后的任意位数
  • \.正在查找小数
  • *[0-9]*在小数点后找到零或更多位数

我希望删除美元符号。我该怎么做?

提前致谢。

3 个答案:

答案 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})

Demo



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