RegEx模式不匹配php,但在c#/ java/etc中

Fel*_*x C 0 php java regex

我在php中有正则表达式的问题.

得到以下模式: ^\s*(\d{8})\s+(.+?)\s+(\d+,\d{2})\s.?\s(.*)$

我的搜索字符串如下: 搜索字符串示例 12345678这是一个小产品描述,其中包含一些特殊字符,如®16,00€,也许这里有一些文字

我用这个PHP代码:

$regex = '/^\s*(\d{8})\s+(.+?)\s+(\d+,\d{2})\s.?\s(.*)$/';
echo preg_match($regex, $input);
Run Code Online (Sandbox Code Playgroud)

但没有比赛!

java或c#中的相同正则表达式模式有效!你能解释一下我做错了什么吗?

这里有一些在线正则表达式测试器:

PHP:http://regexp-evaluator.de/evaluator/d721ca1ed32d76db960262ba7298cff3/#ergebnis

Java:http://www.regexplanet.com/advanced/java/index.html

mar*_*rio 5

你缺少/u修饰语.

在查找价格值0,00后,您的正则表达式会比较(.?)空格之间的单个字符.但欧元符号通常占用两个字节.这仅适用于UTF-8模式.