有一段代码“价格:¥18.00”
我要通过正则表达式得到18.00元,正则表达式应该怎么写。
我这写: '/our-price\">(.+)<\/span>/' 不对,¥符号变成了特殊字符。下面的所有东西就都跟着变了成了特殊字符。
对¥该如何处理?
正则表达式如何匹配人民币符号
答案:2 悬赏:0
解决时间 2021-04-23 02:04
- 提问者网友:恋你成殇
- 2021-04-22 02:28
最佳答案
- 二级知识专家网友:气场征服一切
- 2021-04-22 02:37
'/our-price\">\u00A5 (.+)<\/span>/'
“\unnnn”表示“ Unicode代码中十六进制代码为nnnn的字符 ”
我查过表了,¥的Unicode代码十六进制代码为00A5,所以就可以这样的
我测试过了,一定可以的唷~~
【另附上我以前学正则的资料:】
表7.尚未详细讨论的语法 \a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?-exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no
“\unnnn”表示“ Unicode代码中十六进制代码为nnnn的字符 ”
我查过表了,¥的Unicode代码十六进制代码为00A5,所以就可以这样的
我测试过了,一定可以的唷~~
【另附上我以前学正则的资料:】
表7.尚未详细讨论的语法 \a 报警字符(打印它的效果是电脑嘀一声)
\b 通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no
全部回答
- 1楼网友:废途浑身病态
- 2021-04-22 03:50
要写表达式,得先分析:
1. 首位不为 , . 或者0
2. 如果有 , 则后必须跟3位连续数字
3. 如果有 . 则后必须跟2位连续数字,且最多为1个 . 。
4. 末位必须为数字
5. 至少1位数
即可得出表达式
/^[1-9]\d*(,\d{3})*(\.\d{2})?$/;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯