Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_match_all alpha+;重音,但不是数字_Php_Regex_Preg Match All_Regex Negation - Fatal编程技术网

Php preg_match_all alpha+;重音,但不是数字

Php preg_match_all alpha+;重音,但不是数字,php,regex,preg-match-all,regex-negation,Php,Regex,Preg Match All,Regex Negation,我想使用PHP的preg_match_all来捕获子字符串,其中包括: A-Z,A-Z,所有重音字符 空间 连字符 它不能捕获包含任何其他内容的字符串,包括数字字符 此示例非常接近,但也捕获包含数字字符的字符串: preg_match_all("/([\w -]+)/u", $abigstring, $matches); 这是Unicode属性的作业: preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches); \p{L}匹配任何具

我想使用PHP的preg_match_all来捕获子字符串,其中包括:

  • A-Z,A-Z,所有重音字符
  • 空间
  • 连字符
它不能捕获包含任何其他内容的字符串,包括数字字符

此示例非常接近,但也捕获包含数字字符的字符串:

preg_match_all("/([\w -]+)/u", $abigstring, $matches);

这是Unicode属性的作业:

preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches);

\p{L}
匹配任何具有Unicode属性“Letter”的字符。

这是Unicode属性的作业:

preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches);

\p{L}
匹配任何具有Unicode属性“Letter”的字符。

对于那些想要匹配的字符,下面是对上面代码的一个更正,它不起作用

preg_match("/^([\p{L} -]+)$/u", $string)
缺少定位点(^和$)

编辑:好多了。如果仅允许在中间使用连字符/空格:

/^([\p{L}](?:[\p{L} -]+[\p{L}])?)$/u

对于那些想这样做的人,这里是对上面代码的一个修正,它不起作用

preg_match("/^([\p{L} -]+)$/u", $string)
缺少定位点(^和$)

编辑:好多了。如果仅允许在中间使用连字符/空格:

/^([\p{L}](?:[\p{L} -]+[\p{L}])?)$/u

这也是一种选择:

preg_replace("/[^A-Za-zÀ-ÿ -]+/u", "", "juana 123456 sfdf 423 999 _ -a- dsa & ç%& à à$¨à+", -1);

下面是一个工作示例->

这也是一个选项:

preg_replace("/[^A-Za-zÀ-ÿ -]+/u", "", "juana 123456 sfdf 423 999 _ -a- dsa & ç%& à à$¨à+", -1);

下面是一个工作示例->

您想只匹配ASCII重音字符还是包含Unicode?@GigaWatt:“所有重音字母”。您想只匹配ASCII重音字符还是包含Unicode?@GigaWatt:“所有重音字母”。Genius。谢谢你。任何其他搜索的人都可以查找Tim称之为Unicode属性的地球魔法:这里有整个regex需要探索!天才谢谢你。任何其他搜索的人都可以查找Tim称之为Unicode属性的地球魔法:这里有整个regex需要探索!您在哪里看到他想要捕获所有字符串?您在哪里看到他想要捕获所有字符串?这也替换了不需要的连字符。@M42您说得对!我忘了连字符。我编辑了我的答案,现在一切都好了。好的,+1表示
\pL
的替代选项。但我认为
\pL
更方便。这也取代了不需要的连字符
-
。@M42你说得对!我忘了连字符。我编辑了我的答案,现在一切都好了。好的,+1表示
\pL
的替代选项。但是我认为
\pL
更方便。